一、类和对象的关系
类:类是对象的抽象
对象:对象是类的具体,实例,实体
一个类可以有多个对象
一个对象只能有一个类
创建对象需要用到 构造方法
作用:创建对象,
创建对象的同时,给对象的成员变量赋初始值
构造方法语法:
构造方法没有返回值类型,不写void
***** 如果创建类时,添加带参构造方法,系统将不再生成无参构造,自己手动添加无参构造
访问修饰符 类名(){ //无参构造
}
带参构造
访问修饰符 类名(参数列表){
this.name=name;
this.age=age;
}
构造方法也有重载:
方法重载:
同一个类中,方法名相同,
参数的个数或数据类型不同,(参数列表不同)
与返回值和访问修饰符无关
成员方法:
访问修饰符 返回值类型 方法名( ) {
//我们所有学过的数据类型都可以作为返回值类型,没有返回值就用void
}
局部变量: 定义在方法内的变量,叫局部变量
方法内包括方法体 { 局部变量 }
方法名小括号中的 参数 (也是局部变量)
成员变量: 定义在类中,没有static修饰的成员变量,叫实例变量,实例变量是属于某个对象的
static 成员变量前加上static ,这个员变量就为 静态变量,也叫 类变量,
访问方式1: 类名. 静态变量
访问方式2: 对象名. 静态变量
成员方法:实例方法和静态方法
静态变量和实例变量 写在方法内时,静态方法只能访问静态变量,不能访问实例变量
实例方法既可以访问静态变量,又可以访问实例变量。
静态static 关键字所修饰的内容是随着类的加载而加载,不需要创建对象,用类名就可以访问。
静态代码块 只执行一次,和创建对象无关。
main(String [] args)方法一般放在测试类中
关键字:
this 在本类中的三种用法:
在构造方法中, this.name=name; 区分成员变量和参数的局部变量
构造方法中, 调用构造方法,必须在第一行
this(); 在本类中,调用无参构造方法
this(name); //在本类中,调用带参构造方法
在普通方法中,
this.变量名, 区分方法体中的局部变量和成员变量
this.printInfo();
成员变量和局部变量区别:
定义的位置不同
i. 成员变量定义在类文件中,
ii. 局部变量定义在方法中
默认值
成员变量有默认值,可以直接访问,还可以改变成员变量的值
局部变量,没有默认值,必须赋初始值才可以访问
使用范围,作用域
i. 成员变量在整个类可见,也就是在整个类中可以使用
ii. 局部变量只在本方法中可见,也就是在本方法中使用
同名
i. 成员变量可以和局部变量同名,但是在方法中,局部变量的优先级更高
ii.局部变量在同一个方法中不能重名,在不同的方法中可以重名
成员方法
实例方法: 无参方法
语法:
【访问修饰符】返回值类型 方法名(){
}
带参方法
语法:
【访问修饰符】返回值类型 方法名(参数类型 形式参数列表){
}
方法调用:
public class Student(){
public void show(){
}
public void print(){
show();
}
}
本类中:
直接写方法名调用, 省略this
this.成员方法();
其他类中调用
需要先创建对象,
对象名. 方法名();
对象名. 方法名(实参列表); //方法调用时,只传实际参数不需要写参数类型
总结: 实例方法可以使用静态变量,也可使用实例变量
静态方法:属于类的方法
定义语法:
访问修饰符 static 返回值类型 方法名(){
//局部变量
不可以使用非静态的成员变量(实例变量)
}