类和对象
类:类是模子,确定对象将会拥有的特征(属性)和行为(方法)。
类的特点:类是对象的类型(对象是具体的数据信息),是具有相同属性和方法的一组对象的集合。
属性:对象具有的各种特征(有什么、特定值),每个对象的每个属性都拥有特定值。
方法:对象执行的操作(能干什么)
- 定义一个类
//1、定义一个类
public class demoClass {
//2、属性 (成员变量) 有什么
String name = "bob";
int age = 22;
//3、方法 干什么
void getName(){
System.out.println("我的名字是bob");
}
void getAge(){
System.out.println("我的年龄是22");
}
}
- 如何使用类( 使用对象的步骤)
//1.创建对象
demoClass hello = new demoClass();
//2.使用对象
hello.getName();
- 成员变量和局部变量
1、成员变量:在类中定义, 作用域为整个方法内部;初始值默认为0
2、局部变量:在类的方法中定义,在方法中临时保存证据; 作用域仅限于本方法;定义时要赋值(没有初始值),否则报错;不同方法内可有同名局部变量
3、两个变量名相同时,会取局部变量中的值 - 构造方法
1、构造方法没有返回值,名称与类名相同;
2、有参数的构造方法的功能就是创建实例同时给成员变量初始化(参数列表的参数是给成员变量初始化用的);
3、当然也可以在构造方法中进行输出操作;也可在构造方法中进行一些判断,判断参数是否合理,若不合理还可以进行更多的骚操作;
4、当类中无定义构造方法时,系统默认添加无参的构造方法,当定义了构造方法时,无论是带参的还是不带参的,都不会自动添加无参的构造方法,所以若在类中定义了带参的构造方法,最好也把无参的构造方法写上;
栗子
**创建类**
package com.test;
public class Telphone {
public Telphone(){
System.out.println("输出了无参数的构造方法");
}
public Telphone(int num1 ,int num2){
System.out.println( "有参数的构造方法,值为" + num1 + "和" + num2 );
}
}
**入口类**
package com.test;
public class testTel {
public static void main(String [] args){
int a1 = 21;
int a2 = 22;
// 五参数的构造方法
Telphone hello = new Telphone(); //输出了无参数的构造方法
//有参数的构造方法
Telphone hello2 = new Telphone(a1,a2); // 有参数的构造方法,值为21和22
}
}
- 静态方法
Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。当然,鉴于他作用的特殊性更推荐用类名访问~~我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。我们也可以创建static 静态变量让 该类所有的对象共用。
栗子
public class staticVarFun {
//定义一个静态变量
static String firstName = "bob";
//定义一个静态方法
public static String getName(String name){
return name;
}
//入口方法
public static void main(String [] args){
//类名直接调用静态变量
System.out.println(staticVarFun.firstName); //bob
//创建类的对象
staticVarFun hello = new staticVarFun();
//使用对象名的形式修改静态变量的值
hello.firstName = "polly";
System.out.println( hello.firstName); //polly
System.out.println( staticVarFun.firstName); //polly
// 调用静态方法getName
String allScore = getName( staticVarFun.firstName);
System.out.println( allScore); //polly
}
}
- static 静态初始化块 (静态初始化块只在类加载时执行,且只会执行一次)
在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用 static 修饰初始化块,就称为静态初始化块。
需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
栗子
public class initializeStatic {
String name; //申明变量name
String sex;//申明变量sex
static int age;//申明静态变量age
public initializeStatic(){ // 构造方法
name = "汤姆";
}
{
sex = "男";
}
static {
age = 24;
}
public void info(){
System.out.println("姓名:" + name +" 性别:" + sex + " 年龄:" + age);
}
//入口方法
public static void main(String [] args){
// 创建对象
initializeStatic hello = new initializeStatic();
// 调用对象的info方法
hello.info(); // 姓名:汤姆 性别:男 年龄:24
}
}