类和对象
类(设计图):是对象共同特征的描述,
对象:是真实存在的具体东西。
在Java中,必须先设计类,才能获得对象。
类的定义
public class Phone {
//属性
String bread;
double price;
//行为
public void call(){
System.out.println("手机在打电话");
}
public void playGame(){
System.out.println("手机在玩游戏");
}
}
类的使用
public class PhoneTest {
public static void main(String[] args) {
//创建收集对象
Phone p=new Phone();
//赋值属性
p.bread="安卓";
p.price=5000;
//调用方法
p.call();
p.playGame();
}
}
private关键字
- 是一个权限修饰符
- 可以修饰成员(成员变量和成员方法)
- 被private修饰的成员只能在本类中才能访问
this关键字
成员变量和局部变量
就近原则:此时输出的age是局部变量
想要输出成员变量需要输出,需要this.age
构造方法
构造方法也叫作构造器、构造函数。
作用:在创建对象的时候给成员变量进行初始化的。
格式:
public class student {
修饰符 类名(参数){
方法体;
}
执行时机:
1.创建对象的时候由虚拟机调用,不能手动调用构造方法
2.每创建一次对象,就会调用一次构造方法
如果我们自己没有写任何的构造方法,那么虚拟机给我们加一个空参构造方法
构造方法注意事项
① 构造方法的定义
如果没有定义构造方法,系统将给出一个默认的无参数构造方法如果定义了构造方法,系统将不再提供默认的构造方法
② 构造方法的重载
带参构造方法,和无参数构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载
③ 推荐的使用方式
无论是否使用,都手动书写无参数构造方法,和带全部参数的构造方法
标准的JavaBean类
1.类名需要见名知意
2.成员变量使用private修饰
3.提供至少两个构造方法
- 无参构造方法
- 带全部参数的构造方法
4.成员方法
提供每一个成员变量对应的setXxx()/getXxx()
如果还有其他行为,也需要写上
对象内存图
Student s=new student();
1.加载class文件
2.申明局部变量
3.在堆内存中开辟一个空间
4.默认初始化
5.显示初始化
6.构造方法初始化
7.将堆内存中的地址值赋值给左边的局部变量
基本和引用数据类型
- 基本数据类型
栈内存中存储的是真实的数据值
- 引用数据类型
栈内存中存储的是其他空间中的地址值
this的内存原理
this的本质:代表方法调用者的地址值
this的作用:区分局部变量和成员变量
局部变量和成员变量
成员变量:类中方法外的变量
局部变量:方法中的变量