类和对象
# 1. 类的重要性:所有Java程序都以类class为组织单元
# 2. 定义一个类
public class 类名{
//定义属性部分(成员变量)
属性1的类型 属性1;
属性2的类型 属性2;
...
属性n的类型 属性n;
//定义方法部分
方法1;
方法2;
...
方法m;
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 3. 创建对象(实例化)
类名 对象名 = new 类名();
1
# 4. 成员变量和局部变量
区别
- 作用域不同
- Java会给成员变量一个初始值;不会给局部变量赋予初始值
- 在同一个方法中,不允许有同名局部变量;在不同的方法中,可以有同名局部变量
- 两类变量同名时,局部变量具有更高的优先级
# 5. 构造方法(相当于C++中的构造函数)
public 构造方法名(可以指定参数){
//初始化代码
}
1
2
3
2
3
- 使用new+构造方法 创建一个新的对象
- 构造方法是定义在Java类中的一个用来初始化对象的方法
- 构造方法与类同名且没有返回值
- 当没有指定构造方法,系统会自动添加无参的构造方法
- 当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法
- 构造方法的重载:方法名相同,但参数不同的多个方法,调用时会自动根据不同的参数选择相应的方法
- 构造方法不但可以给对象的属性赋值,还可以保证给对象的属性赋一个合理的值
# 6. Java中的static使用之静态变量
public class HelloWorld{
//static修饰的变量为静态变量,所有类的对象共享hobby
static String hobby = "Student";
public static void main(String[] args){
//静态变量可以直接使用类名来访问,无需创建类的对象
System.out.println("通过类名访问hobby: "+HelloWorld.hobby);
//创建类的对象
System.out.println("通过对象名访问hobby: "+hello.hobby);
//使用对象名的形式修改静态变量的值
hello.hobby = "Teacher";
//再次使用类名访问静态变量,值已被修改
System.out.println("通过类名访问hobby: "+HelloWorld.hobby);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。
- 静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收!
# 7. Java中的static使用之静态方法
public static void print(){
System.out.println("Hello World");
}
1
2
3
2
3
- 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。
- 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
- 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量。
- 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。
# 8. Java中的static使用之静态初始化块
static{
age = 20;
System.out.println("通过静态初始化块初始化age");
}
1
2
3
4
2
3
4
- 静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
- 程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。
编辑 (opens new window)
上次更新: 2021/02/16, 14:20:12