一、类与对象
1.1类与对象的理解
(1)类就是数据类型,比如String类
(2)对象就是一个具体的实例
1.1.2类和对象的区别与联系
1) 类是抽象的,概念的,代表一类事物,比如人类,猫类.., 即它是数据类型.
2) 对象是具体的,实际的,代表一个具体事物, 即 是实例.
3) 类是对象的模板,对象是类的一个个体,对应一个实例
最简单的例子:类(人类),对象(你、我、他)。
1.1.3类的组成
类由属性/成员变量/字段、方法、构造器/构造方法、代码块组成。
1.2属性/成员变量/字段
1.2.1基本介绍
(1)从概念或叫法上看: 成员变量 = 属性 =field(字段) (即 成员变量是用来表示属性的)。
(2)属性是类的一个组成部分,一般都是基本数据类型,也可以是引用数据类型(对象、数组)。
例如:
class Cat{
public String name;//定义属性name
public int age;//定义属性age
}
1.2.2注意事项和细节说明
1)属性的定义语法同变量:访问修饰符 属性类型 属性名。
这里简单的介绍下访问修饰符:
控制属性的访问范围 有四种访问修饰符public,proctected,默认,private,后面我会详细介绍。
2)属性的定义类型可以为任意类型,包含基本类型或引用类型。
3)属性如果不赋值,有默认值,规则和数组一致。
即byte[0]、int[0]、short[0]、long[0]、float[0.0]、double[0.00]、char[\u0000]、boolean[false]、String[null]。
2.1创建对象
2.1.1如何创建对象
(1)先声明再创建
Cat cat ; //声明对象
cat cat = new Cat(); //创建
(2)直接创建
Cat cat = new Cat();
2.1.2如何访问属性
基本语法
对象名.属性名;
cat.name//访问name属性
2.2类和对象的内存分配机制*
以Cat类演示
class Cat{public String name;public int age;
public static void main(String[]args){Cat cat1=new Cat();//创建cat1
cat1.name="小黄";
cat1.age=3;
}
2.2.1Java内存的结构分析
(1)栈:一般存放基本数据类型(局部变量)。
(2)堆:存放对象(Catcat,数组等)。
(3)方法区:常量池(常量,比如字符串),类加载信息 。
2.2.2Java创建对象的流程简单分析
1)先加载Cat类信息(属性和方法信息,只会加载一次)。
2)在堆中分配空间,进行默认初始化(看规则)。
3)把地址赋给cat1,cat1就指向对象。
4) 进行指定初始化, 比如 cat1.name=”小黄” cat.age=3。