p60 什么时面向对象
- 面向过程思想步骤清晰简单,第一步做什么,第二步做什么...,适合处理简单的问题
- 面向对象思想是分类的思维模式,适合处理复杂需要多人协作的问题,解决问题首先思考需要哪些分类,然后对这些分类进行单独思考,对分类下的细节进行面向过程的思索
- 面向对象编程( Object-Oriented Programming ,OOP )的本质是:以类的方式组织代码,以对象的形式封装数据
- 面向对象的三大特性:封装、继承、多态
- 从认识论角度考虑,是先有对象后有类,对象是具体的事物,类是抽象的,是对对象的抽象
- 从代码运行的角度考虑,是先有类后有对象,类是对象的模板
p63 类与对象的创建
1、类与对象的关系
1)类是抽象的数据类型,它是对某一类事物整体的描述和定义,并不能代表某一个具体的事物
2)对象是抽象概念/类的具体实例,是能够 体现出具体特点,展现出具体功能的,而不是抽象的概念
- 张三就是人的一个具体实例,张三家的旺财就是狗的一个具体实例
2、创建与初始化对象
- 使用 new关键字创建对象
- 使用new创建对象时,除了分配内存空间之外,还会给创建好的对象进行默认初始化,及调用类的构造器。
- 类只包含属性/字段/成员变量和方法两种语句
- 类是抽象的需要实例化后才能使用,实例化后返回一个自己的对象
- 一个项目应该只有一个main方法
p64 构造器详解
1、类中的构造器也叫构造方法
- 创建对象时是必须调用构造方法的
- 构造器名和类名必须相同
- 不能有返回类型,也不能写void
2、new实例化类的本质,是调用类的构造器
- 构造器是用来生成对象的
- 构造器可以用来初始化属性的值
- 一旦定义了有参构造器,无参构造器就必须显示定义才能使用
//构造器示例:
public class D01{ public static void main(String[] args){ //new实例化类 创建对象 Person person = new Person(); //调用无参构造器 Person person2 = new Person("hello java"); //调用有参构造器 System.out.println(person.name); //java System.out.println(person2.name); //hello java } } //定义Person类 public class Person{ String name; //null //显示定义无参构造器 public Person(){ this.name = "java"; } //定义一个有参构造器 public Person(String name){ this.name = name; } }
p65 创建对象的内存分析
面向对象示例2:
public class D02{ public static void main(String[] args){ //new Pet类,调用了构造器,创建了对象,给字段赋值,调用了类的方法,输出了对象的属性 Pet dog = new Pet(); dog.name = "旺财"; dog.age = 3; dog.shout(); System.out.println(dog.name); System.out.println(dog.age); } } //Pet类 public class Pet{ String name; int age; //无参构造器 //定义一个方法 public void shout(){ System.out.println("叫声旺旺"); } }
//即使再小的帆也能远航2021-11-02