黑马程序员 JAVA基础<二> 面向对象之封装 继承 多态

时间:2023-02-13 23:49:36

 

                           ------- android培训java培训期待与您交流! ----------

1:面向对象
 (1)面向对象:是一种编程思想。
  A:它是相对于面向过程而言的。
   a:面向过程强调的是过程
   b:面向对象强调的是对象调用功能,看最终的结果
  B:它是基于面向过程的。
 (2)面向对象的特点:
  A:是一种符合人们思考习惯的一种思想。
  B:把复杂的事情简单化了。
  C:是我们从以前的执行者变成了现在的指挥者。

  举例:
   电脑城买电脑
   宅男班长不出门吃饭
   去饭店吃饭
   自己洗衣服,做饭

   面试怎么谈???
 (3)类与对象的关系
  A:类和对象分别是什么?
   a:类 是对同一类事物的抽象
   b:对象 是该类事物的具体的存在的个体
  B:java是怎么来描述现实世界事物的?
   a:现实世界的事物可以通过属性和行为来描述
   b:java对现实世界的事物是通过类来体现的
   c:java中的成员和现实世界事物的对应关系:
    成员变量:属性
    成员方法:行为
 
 (5)注意:
  A:有对象,就直接用。没有对象,就创建对象用。
  B:如何创建对象呢?
   通过new来创建对象。
   格式:
    类名 对象名 = new 类名();
  C:如何使用对象呢?
   对象名.方法名(参数)
   对象名.属性名 其实这里是一个它所定义类型的数据

2:封装

 (1)隐藏实现细节,提供公共的访问方式。
 (2)好处:
  使变化隔离
  便于使用
  提高复用性
  提高安全性
  举例:电脑机箱问题
 (3)java中如何体现封装呢?
  类,方法。

  用private私有关键字体现。
   A:是一个访问修饰关键字
   B:可以修饰成员方法和成员变量
   C:只能在本类中被访问
 (4)代码体现:

  class Student
  {
   //封装
   private String name;
   private int age;

   //构造方法
   public Student(){}

   public Student(String name,int age)
   {
    //this关键字
    this.name = name;
    this.age = age;
   }

   public void setName(String name)
   {
    this.name = name;
   }

   public String getName()
   {
    return name;
   }

   public void setAge(int age)
   {
    this.age = age;
   }

   public int getAge()
   {
    return age;
   }
  }
3:继承
 (1)继承:在java中,我们在定义一个类的时候,可以不用全部定义类中的内容,
          通过继承把其他类的非私有功能可以直接拥有。
 (2)父类:被继承的类。(超类,基类)
    子类:继承其他类的类。
 (3)继承的好处:
  A:提高代码的复用性。
  B:让类与类之间产生了关系,是多态的前提。
 (4)使用继承:
  格式:
   class 类A extends 类B{}

  什么使用时候继承呢?
   假设判断法。
   继承是:"is a"的关系 "x is a y"
 (5)特点:
  A:java只支持单继承
  B:java可以支持多重(层)继承

内存图:

黑马程序员 JAVA基础<二> 面向对象之封装 继承 多态

 


4:多态
 (1)多态:就是对象在不同时刻代表的不同状态。
  举例:
   水(水蒸气,水,冰)
 (2)多态的前提:
  A:有继承关系
  B:有方法的重写
  C:有父类引用指向子类对象

  举例:
   class Fu{ public void show(){sop("Fu")} }

   class Zi extends Fu{ public void show(){sop("zi")} }
   
   多态:
    Fu f = new Zi();
 (3)多态的好处:
  A:提高了代码的后期的维护性
  B:提高了代码的后期的扩展性

  弊端:只能使用父类中定义过的方法。子类特有方法不能使用。
 (4)多态研究的内容(对象):
  A:成员变量:
   编译看左边,执行看左边

  B:成员方法:
   编译看左边,执行看右边
  
  C:静态修饰成员:
   编译看左边,执行看左边
   
   注意:跟对象无关,也可以说不能算作多态的内容。
         静态修饰的东西。

  向上转型:为了多态使用对象
  向下转型:为了使用对象的特殊功能

多态的内存图:

黑马程序员 JAVA基础<二> 面向对象之封装 继承 多态

                               ------- android培训java培训期待与您交流! ----------