一、学习面向对象的三条主线
1、Java类及类的成员:(重点)属性、方法、构造器;(熟悉)代码块、内部类
2、面向对象的特性:封装、继承、多态。
3、其他关键字的使用:this、super、package、import、static、final、interface等
本章主要针对属性和方法进行梳理和总结
二、面向对象完成具体功能的操作的三步流程(非常重要)
步骤1.创建类,并设计类的内部成员(属性、方法)
步骤2:创建类的对象。比如: Phone p1 = new Phone();
步骤3:通过对象,调用其内部声明的属性或方法,完成相关的功能
1.1、面向对象编程的两个核心概论:类(Class)、对象(Object)。
1.2、类的实例化
等价描述:类的实例化<=>创建类的对象<=>创建类的实例
格式:类类型对象名=通过new创建的对象实体。例:Phone p1 = new Phone();
1.3、属性:就是一个物体特有的,如人就是一个类,人有姓名,年龄,性别......而姓名,年龄,性别就是人的属性
//定义Person类
public class Person{
//属性
String name;//姓名
int age;//年龄
char gender;//性别
}
1.4、方法:语句的集合,它们在一起执行一个功能。 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中。
//Person类
public class Person{
//属性
String name;
int age;
char gender;
//eat方法
public void eat(){
System.out.print("人吃饭");
}
}
1.5 区分成员变量与局部变量
相同点:
不同点:
2.1.对象在内存中的分配涉及到的内存结构(理论)
-栈(stack):方法内定义的变量,存储在栈中。
-堆(heap) : new出来的结构(比如:数组实体、对象的实体)。包括对象中的属性-方法区(method area):存放类的模板。比如:Person类的模板.
强调1:创建了Person类的两个对象
Person p1 = new Person();
Person p2 = new Person();
说明:创建类的多个对象时,每个对象在堆空间中有一个对象实体。每个对象实体中保存着一份类的属性。如果修改某一个对象的某属性值时,不会影响其他对象此属性的值。
p1.age = 10; p2.age = 20; p1.age = 30;
system.out.println(p2.age);//20
强调2:声明类的两个变量
Person p1 = new Person();
Person p3 = p1;
说明:此时的p1,p3两个变量指向了堆空间中的同一个对象实体。戴p1, p3保存的地址值相同)