1. 类和对象1.1 类和对象的理解【理解】 一个标准类的构成: 1.私有的属性 2.属性的公共get/set方法 3.行为,自定义的方法 4.构造函数(满参,无参) 5. 客观存在的事物皆为对象 ,所以我们也常常说万物皆对象。 类 类的理解 类是现实生活中具体共同属性和行为的一种事物的抽象. 对象的理解:他是类的实体类和对象的关系 什么是类:他是java语言用来描述现实生活中某一类事物共性(共同的属性和行为)的总结和描述. 什么是对象:他是基于我们写的这个类在java中创建出来的真实个体(实体).在堆内存当中存在,他就是现在生活中的一个实物. 举个例子:汽车他是一类事物,我们可以写一个汽车的总结和描述,他是一个类.但是你自己的汽车就是一个对象.(万物皆对象) 面试官的版本:什么是面向对象. 面试官您本身具有丰富的开发经验,您可以自己开发完整个项目,但是需要花费一定的时间,这时候您就找到我们这群有开发经验的工作人员,分配工作然后指挥我们去帮助您开发,这个过程就是面向对象. 面向过程:我们开发的时候时候,所有的过程和步骤我们都参与了,我们是实际开发者,是参与者. 面向对象:我们开发的时候,首先想到的是,有没有对象可以帮助我们完成,如果有,我们就让他帮助我们去实现对象的功能,我们是调用者.面向对象更符合我们现在人的思维.以后,我们思路就是什么?首先想有没有对象能够帮我们开发,如果没有,我们就自己描述一个对像(类),创建这个对象,然后调用这个对象. 1.2 类的定义【应用】类的组成是由属性和行为两部分组成 属性:我们在java中描述属性是用成员变量描述的.成员变量类中方法外 行为:我们在java中描述行为是 用成员方法描述的(去掉static) 类的定义步骤: ①定义类 ②编写类的成员变量 ③编写类的成员方法 示例代码: public class People { //我们自定义的类是描述一类事物的,他不需要运行的,所以他不需要main方法 //属性 我们成员变量 数据类型 变量名; int age; String name; //定位行为,能做的动作 方法(去掉static) public void eat(){ System.out.println("吃法"); } public void sleep(){ System.out.println("睡觉"); } } 1.3 对象的使用【应用】创建对象的格式: 类名 对象名(自己起的)= new 类名(); 调用成员变量和方法的格式: 调用变量:对象名.变量名 调用方法:对象名.方法名(); 示例代码 · public class Test { //psvm public static void main(String[] args) { People p = new People(); // int a = p.age; System.out.println(p.age); System.out.println(p.name); p.age = 35; p.name="静静"; System.out.println(p.age); System.out.println(p.name); //方法 对象名.方法名(); p.eat(); p.sleep(); } } 1.4 学生对象-练习【应用】需求:首先定义一个学生类,然后定义一个学生测试类,在学生测试类中通过对象完成成员变量和成员方法的使用 分析: 成员变量:姓名,年龄… 成员方法:学习,做作业… 示例代码: · public class Test2 { //main方法是运行的 我们测试类是需要运行 public static void main(String[] args) { //创建这个类的对象 类名 变量名 = new 类名(); Student s1 = new Student(); System.out.println(s1.name+","+ s1.age); //使用属性 变量名.属性名 s1.age=35; s1.name="静静"; System.out.println(s1.name+","+ s1.age); //使用方法 看他的行为 变量名.方法名(); s1.study(); s1.doHomework(); } } 2. 对象内存图2.1 单个对象内存图【理解】2.2 多个对象内存图【理解】2.3 多个对象指向相同内存图【理解】3. 成员变量和局部变量3.1 成员变量和局部变量的区别【理解】1.类中的位置不同,成员变量是在类中方法外,直接上级是类.局部变量他是方法中的变量包括参数列表定义的变量.直接上级是方法. 2.内存中的位置不同.成员变量在堆内存中,局部变量在栈内存中. 3.生命周期不同:成员变量是随着对象的消失而消失,局部变量是随着方法的消失而消失. 4.默认值不同:成员有默认值.局部变量没有默认值,比逊先赋值才能使用.
|