复习
类和对象:
类:所有同种对象共同拥有的特征/行为,抽象出来成为类
对象:符合类的特性并且真实存在的个体
实例化对象 Student stu = new Student()
成员变量
默认值:基本数据类型:0
引用数据类型:null
成员方法
局部变量 和 成员变量的区别:
1).声明位置
成员变量定义在类中。 局部变量定义在方法中。
2).初始值
成员变量需初始化
局部变量有初始值
3).个数
4).JVM内存中的区别
成员变量存储在堆内存的对象中。 局部变量存储在栈内存的方法中。
1.构造方法/构造器
1)目的: 给成员变量初始化
2)构造方法的定义:
a.方法名和类名一致
b.没有返回值类型 注意: void也不行,表示没有返回值
c.默认添加无参构造方法
d.如果自定义有参构造方法,不会再默认添加无参构造方法
public class Student {
//成员变量
String name ;
int age;
//构造方法/构造器 - 系统默认生成
public Student(){//无参构造方法
//目的: 给成员变量初始化
//name = "lucy";
//调用有参构造方法
//this("marry",33);
}
//有参构造方法
/*
this关键词: 表示当前对象(动态值)
*/
Student(String name, int age){
//调用无参构造方法 - 只能放在构造方法中的一行
this();
//如果成员变量 和 局部变量同名时,会就近原则使用
//只能使用this关键词区分
this.name = name;
this.age = age;
//调用成员方法
/* this.*/study("java");
}
//成员方法
void study(String sub){
System.out.println("正在学习:" + sub);
}
}
2.this关键词
1).this关键词,表示当前对象
2).在构造方法中,this是可以调用自己的成员变量
如果成员变量名和局部变量名,同名时必须使用this关键词来表示成员变量,不能省略
3).在构造方法中,可以调用自己的成员方法 this关键词可以省略
4).this也可以调用自己的构造方法,this(参数),this不能省略
注意:不能同时调用,会造成死循环,并且只能放在构造器的第一行使用
public class Student {
private String name;
private int age;
public void setName(String name) {
// name = name;
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
// age = age;
this.age = age;
}
public int getAge() {
return age;
}
}
3.方法重载
1)方法名一样,方法参数不一样的几个方法,称之为方法重载
2)参数不一样的情况:
a.个数不同
b.类型不同
c.顺序不同
d.和参数名没有任何关系
3).方法重载和返回值无关
4).前提: 必须是在同一个类中才能造成方法的重载
public static void t(int a){
}
public static void t(int a,int b){
}
public static void t(int a,String b){
}
public static void t(String a,int b){
}
4.数组和引用数据类型结合 - 引用类型数组
1)数组定义方式
a.静态赋值
ps: Student s = {new Studnet(),new Studnet()};
Student s = {new Student(),new Student()};
b.动态赋值
Student s = new Student[2];
2)有可能出现的异常:
NullPointerException - 空指针异常
a.产生的原因:调用了空值的 成员变量 和 成员方法
b.解决办法:调用前 new一个对象(实例化对象)
3)引用类型数组的使用步骤:
a.给数组初始化
Student s = new Student[2];
b.给数组元素初始化
s[0] = new Student();
s[1] = new Student();