一.面向对象介绍
1.1并不是一个技术,而是一种编程指导思想
1.2以什么形式组织代码;以什么思路解决问题
1.3为什么要用面向对象编程:
因为生活中,我们解决问题时,就是采用这种指导思想去解决的。
所以,我们写程序去解决问题时,如果也能采用这种指导思想就会使编程变得非常简单,程序也便于人理解
1.4 面向对象理解伪代码
public class Test{public static void main(Stringl] args){老师 t= new 老师(); //找一个老师试卷 s= t.出题(); //老师出试卷学生 stu = new 学生(); //找一个学生stu.考试(s); //学生考试t.批卷(s); //老师批改试卷}
}
1.5面向对象,重点学习什么?一点:学习如何自己设计对象并使用二点:学习获取已有对象并使用
二.类和对象
2.1 什么是类
类是对现实生活中一类具有共同属性和行为的事物的抽象
2.2 什么是对象
是能够看得到摸的着的真实存在的实体
2.3小结
类是对象的抽象(学生类),对象是类的实体(学生小明)
2.4对象的属性和行为
属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值(手机:品牌,价格,内存)
行为:对象能够执行的操作(手机:打电话,发短信)
三.类的定义
3.1 类是什么:
是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有的属性和行为
3.2类的组成:属性和行为
属性:在类中通过成员变量来体现(类中方法外的变量)
行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)
3.3类的定义步骤:
步骤1:定义类 (public class 类名 {})
步骤2:编写类的成员变量 (变量1的数据类型 变量1;)
步骤3:编写类的成员方法 (方法1;)
public class 类名 {
// 成员变量
变量1的数据类型 变量1;
变量2的数据类型 变量2;
…
// 成员方法
方法1;
方法2;
…
}
3.4 类的定义具体案例:
public class Phone {//成员变量String brand;int price;//成员方法public void call() {System.out.println("打电话");}public void sendMessage() {System.out.println("发短信");}}
3.5 对象的使用创建对象格式:类名 对象名 = new 类名();范例:Phone p = new Phone();使用对象使用成员变量格式:对象名.变量名范例:p.brand使用成员方法格式:对象名.方法名(参数)范例:p.call()对象使用具体案例:
public class PhoneDemo {public static void main(String[] args) {//创建对象Phone p = new Phone();//使用成员变量p.brand = "小米";p.price = 2999;System.out.println(p.brand);System.out.println(p.price);//使用成员方法p.call();p.sendMessage();}}
四.学生类的定义和使用
需求:定义一个学生类,然后定义一个学生测试类,在学生测试类中通过对象完成成员变量和成员方法的使用
/* 定义一个学生类 */
public class Student {//成员变量String name;int age;//成员方法public void study() {System.out.println("好好学习");}public void doHomework() {System.out.println("多做练习");}}
/* 定义一个学生测试类,通过对象完成成员变量和成员方法的使用 */
public class StudentDemo {public static void main(String[] args) {//创建对象Student s = new Student();//给成员变量赋值s.name = "林青霞";s.age = 30;System.out.println(s.name+","+s.age);//调用成员方法s.study();s.doHomework();}}
五.Java 内存分配
Java程序在运行时,需要在内存中分配空间。
为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
5.1Java 内存分配
5.2栈和堆
栈(虚拟机栈)所有局部变量都会在栈内存中创建局部变量:定义在方法中的变量或者方法声明上的变量方法执行都会加载到栈中进行局部变量特点:随着方法的调用而存在,随着方法的调用完毕而消失代码:Student s = new Student();
堆所有对象及其对应的实例变量和数组都将存储在此处简单理解为:new出来的东西,都存储在堆内存每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收实例变量(成员变量)有初始化值:基本数据类型:整数:0,浮点数:0.0,布尔:false,字符:空字符引用数据类型:null
5.3单个对象内存图
5.4多个对象内存图
5.5多个引用指向相同