面向对象基础部分
1.创建一个类
2.得到类的对象
格式:类名 对象名 = new 类名();
例如:char c = new Car();
3.注意事项
一个Java文件中可以定义多个类,但是只能有一个类是public修饰的,且public修饰的类名必须成为Java代码的文件名称;
4.成员变量的定义
完整格式:修饰符 数据类型 变量名 = 初始化值;
(无需定义初始值,存在默认值)
5.内存机制
package wryyyyy;
public class car
{
//成员变量:
String name;
double price;
//成员方法:
public void start()
{
System.out.println(name+"已启动");
}
public void run()
{
System.out.println("价格:"+price+"的"+name+"跑得快");
}
}
package wryyyyy;
public class test
{
public static void main(String[] args)//main方法
{
car c1=new car();
c1.name="车1";//成员变量的调用
c1.price=34.56;
System.out.println(c1.name);
System.out.println(c1.price);
c1.start();
c1.run();
}
}
test类和main方法优先加载到方法区里面;
main方法被提到栈内存中执行,遇到car对象,car被优先加载到栈内存中,里面是空的;
在堆内存中开辟一块空间,代表car类对象,这块空间中开辟一块区域存放属性信息,即成员变量,同时开辟一块空间存放成员方法的地址,指向方法区中的方法。
注意:对象变量里面存的是一块地址。
当两个变量指向同一个对象时,两个变量实际是指向堆内存中同一块地址,因此通过一个变量改变对象时,另一个变量所指向的内容也发生了改变。
6.垃圾回收
堆内存中对象无变量引用时,Java会自动定期清理;
构造器
用于初始化对象,并返回对象的地址。
调用构造器得到对象:
系统默认存在无参构造器,调用时采用默认值;
定义了有参构造器,无参构造器必须自己写。
this关键字
1.可出现在构造器,方法中,代表当前对象的地址;
2.用于访问当前对象的成员变量,成员方法;
this.name=name;
封装
面向对象的三大特征:继承,封装,多态;
封装的基本思想:决定属性和行为归属谁(例如人画圆,画圆为圆的方法);
可以在API中找处理对象的方法。
标准Javabean
实体类,用来创建对象,封装数据。
书写要求:成员变量建议私有化,只能本类访问;
提供成套的setter和getter方法暴露取值和赋值;
必须提供无参构造器。