一、构造方法给成员变量赋值
1.格式
- 方法名与类名相同(大小也要与类名一致)
- 没有返回值类型,连void都没有
- return;
2.注意事项
- 如果我们没有给出构造方法,系统将自动提供一个无参构造方法。
- b:如果我们给出了构造方法,系统将不再提供默认的无参构造方法。
- 注意:这个时候,如果我们还想使用无参构造方法,就必须自己给出。建议永远自己给出无参构造方法。
3.给成员变量赋值的两种方式的区别
- setXxx()方法
修改属性值
- 构造方法
给对象中属性进行初始化
4.创建一个对象的步骤
class Demo1_Student {
public static void main(String[] args) {
Student s = new Student();
s.show();
}
}
class Student {
private String name = "张三";
private int age = 23;
public Student() {
name = "李四";
age = 24;
}
public void show() {
System.out.println(name + "..." + age);
}
}
- Student s = new Student();
- 1,Student.class加载进内存
- 2,声明一个Student类型引用s
- 3,在堆内存创建对象,
- 4,给对象中属性默认初始化值
- 5,属性进行显示初始化
- 6,构造方法进栈,对对象中的属性赋值,构造方法弹栈
- 7,将对象的地址值赋值给s
二、static关键字
1.static关键字的特点
- 随着类的加载而加载
- 优先于对象存在
- 被类的所有对象共享
- 可以通过类名调用
2.static的注意事项
- 在静态方法中是没有this关键字的
- 如何理解呢?
- 静态是随着类的加载而加载,this是随着对象的创建而存在。
- 静态比对象先存在。
- 静态方法只能访问静态的成员变量和静态的成员方法
- 静态方法:
- 成员变量:只能访问静态变量
- 成员方法:只能访问静态成员方法
- 非静态方法:
- 成员变量:可以是静态的,也可以是非静态的
- 成员方法:可是是静态的成员方法,也可以是非静态的成员方法。
- 简单记:
3.静态变量和成员变量的区别
- 静态变量也叫类变量 成员变量也叫对象变量
- 所属不同
- 静态变量属于类,所以也称为为类变量
- 成员变量属于对象,所以也称为实例变量(对象变量)
- 内存中位置不同
- 静态变量存储于方法区的静态区
- 成员变量存储于堆内存
- 内存出现时间不同
- 静态变量随着类的加载而加载,随着类的消失而消失
- 成员变量随着对象的创建而存在,随着对象的消失而消失
- 调用不同
- 静态变量可以通过类名调用,也可以通过对象调用
- 成员变量只能通过对 象名调用
4.main方法的格式详细解释
- 格式
- public static void main(String[] args) {}
- 针对格式的解释
- public 被jvm调用,访问权限足够大。
- static 被jvm调用,不用创建对象,直接类名访问
- void被jvm调用,不需要给jvm返回值
- main 一个通用的名称,虽然不是关键字,但是被jvm识别
- String[] args 以前用于接收键盘录入的
4.工具类中使用静态
- 制作一个工具类
- ArrayTool
- 1,获取最大值
- 2,数组的遍历
- 3,数组的反转
public class ArrayTool {
private ArrayTool(){}
public static int getMax(int[] arr) {
int max = arr[0];
for (int i = 1;i < arr.length ;i++ ) {
if (max < arr[i]) {
max = arr[i];
}
}
return max;
}
public static void print(int[] arr) {
for (int i = 0;i < arr.length ;i++ ) {
System.out.print(arr[i] + " ");
}
}
public static void revArray(int[] arr) {
for (int i = 0;i < arr.length / 2 ;i++ ) {
int temp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = temp;
}
}
}
三、说明书的制作过程
- 1.对工具类加入文档注释
- 2.通过javadoc命令生成说明书
- @author(提取作者内容)
- @version(提取版本内容)
- javadoc -d 指定的文件目录 -author -version ArrayTool.java
- @param 参数名称//形式参数的变量名称@return 函数运行完返回的数据