JAVA学习第五天
一、今天干了什么
首先明确面向对象学习三条主线:
(1)Java类及类的成员:属性、方法、构造器;代码块、内部类;
(2)面向对象的三大特征:封装性、继承性、多态性、(抽象性);
(3)其他关键字:this、static、final、abstract、interface、package……
类是抽象的,对象是类的具体。
1.类的成员:
(1)属性=成员变量=域=字段=field
(2)方法=成员方法=函数=method
2.类和对象的实现方法:
(1)创建类,设计类的成员
(2)创建类的对象
(3)通过“对象.属性”和“对象.行为”的方法调用对象的结构
3.类和对象的创建:
class Person {
String name="Yan Shihao"; int age=19; double height=173.0; double weight=65;
void names
(
System.out.println(name);
)
}//莫得分号 Person Me = new Person();
4.调用属性和方法:“对象.属性”、“对象.方法”
5.对象内存解析:
堆:存储对象实例;
栈(虚拟机栈):存储局部变量等;
方法区:存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码
6.属性(成员变量)与局部变量的对比:
相同点:
(1)定义变量的格式相同:数据类型 变量名 = 变量数值
(2)先声明后使用
(3)变量都有其对应的作用域
不同点:
(1)在类中的声明位置不同:
属性:直接定义在类的一对{}内;局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量;
(2)关于权限修饰符的不同:
属性:可以在声明时指明其权限,使用权限修饰符;
(常用的权限修饰符:private、public、protected)
局部变量:不可以使用权限修饰符。
(3)默认初始化值的问题:
属性:根据其类型有默认初始化值;
局部变量:没有默认初始化值,意味着我们使用之前必须进行显示赋值。
(特别的:形参在调用时再赋值即可!)
(4)在内存中加载的位置不同:
属性:加载到堆空间中(非static,static类型加载到方法区);
局部变量:加载到栈空间中