8.面向对象

一、面向对象的三条主线

1.Java类及类的成员:属性、方法、构造器;代码块、内部类

2.面向对象的大特征:封装性、继承性、多态性、(抽象性)

3.其它关键字:this、super、static、final、abstract、interface、package、import等

二、面向过程与面向对象

1.面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。

2.面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。

三、两个重要的概念

类:对一类事物的描述,是抽象的、概念上的定义

对象:是实际存在的该类事物的每个个体,因而也称为实例(instance)

  > 面向对象程序设计的重点是对类的设计;

  > 设计类,就是设计类的成员;

四、面向对象思想的实现

1.创建类,设计类的成员;

2.类的实例化----创建对象;

3.通过“对象.属性”或“对象.方法”的方式调用对象的结构。

五、对象的创建和使用

public class test {
    public static void main(String[] args) {
        Student s = new Student();
        s.say("张三", 18, "英语", "搞培训班");//张三说:我今年18岁了,我的专业是:英语, 我喜欢搞培训班

        Teacher t = new Teacher();
        t.name = "王老师";
        t.age = 34;
        t.course = "语文";
        t.teachAge = 8;
        System.out.println(t.name);//王老师
        t.say();//我热爱教师这个行业
    }
}

class Student{
    //类的成员:属性
    String name;
    int age;
    String major;
    String interests;

    //类的成员:方法
    public void say(String name, int age, String major, String interests){
        System.out.println(name + "说:" + "我今年" + age + "岁了,我的专业是:" + major + ", 我喜欢" + interests);
    }
}

class Teacher{
    //类的成员:属性
    String name;
    int age;
    String course;
    int teachAge;

    //类的成员:方法
    public void say(){
        System.out.println("我热爱教师这个行业");
    }
}

说明:new一个对象,会在堆空间中创建一个对象实体,注意区分赋值和创建操作,创建多个对象,每一个对象都独立的拥有一套该类的属性(非static),修改一个对象的属性不会影响另一个对象的属性值。

六、对象和对象数组的内存解析

1.对象的内存解析

 

 2.对象数组的内存解析

 

 七、匿名对象

定义:我们创建的对象,没显式的赋给一个变量名。即为匿名对象

特点:匿名对象只能调用一次

应用场景:

public class test {
    public static void main(String[] args) {
        PhoneMall pm = new PhoneMall();
        pm.show(new Phone());
    }
}

class Phone{
    int num;
    public void sendEmail(){
        System.out.println("发送电子邮件");
    }

    public void playGame(){
        System.out.println("玩游戏");
    }
}

class PhoneMall{
    public void show(Phone phone){
        phone.sendEmail();
        phone.playGame();
    }
}

八、理解“万事万物皆对象”

1.在Java语言范畴中,我们将功能、结构等封装到类中,通过类的实例化调用具体的功能结构;

2.涉及到Java语言与前端Html、后端的数据库交互时,前后端的结构在Java层面交互时,都体现为类、对象。

 

 

作者:Java之美

日期:2020-03-28

8.面向对象

全文结束