Java学习 · 初识 面向对象深入一

面向对象深入

1.面向对象三大特征

a) 继承 inheritance

      子类可以从父类继承属性和方法

      子类可以提供自己的属性方法

b) 封装 encapsulation

      对外隐藏某些属性和方法

      对外公开某些属性和方法

c) 多态 polymorphism

      适应变量的多种变化

1.1 封装

a)   为什么需要封装

隐藏对象内部的复杂性,只对外公开简单接口。便于外界调用,提高系统可扩展性、可维护性;

 

b)   实现封装

使用访问权限符

成员四种访问权限

  1. public 公共的

项目可见

  1. protected 受保护的

类本身访问

包内其他类访问

子类访问

  1. default 默认的(包可见)

类本身访问

包内其他类访问

  1. private 私有的

只被这个类本身访问

类的两种访问权限

  1. public

项目中所有类访问

  1. default

同一个包内的类访问    

封装要点

  1. 类的属性的处理

a)     一般使用private,除非需要子类继承

b)    提供get/set访问属性,通常方法为public

c)     只用于本类的辅助方法 private

d)    希望其他类调用的方法public

1.2        继承

定义:类是对对象的抽象,继承是对一批类的抽象

意义:提高代码复用性

 

public class TestExtend {

     public static void main(String[] args) {

          Mammal a = new Mammal();

          a.eat(); //从父类继承了eat();

          a.pure();

     }

}

public class Animal{

     String name = "小脑斧" ;

     int age = 2;

     public void eat() {

          System.out.println("吃饭");

     }

}

public class Mammal extend Animal{

     public void pure() {

          System.out.println("吃奶");

     }

}

其他

  1. Java只有单继承
  2. 所有类的公共父类为Object

1.3      方法的重写

 

a)   == 方法名、参数相同

b)   <= 返回值类型和异常类型子类小于父类

c)    >= 访问权限子类大于父类

Object类

Object类是所有类的基类,其中含有许多方法

1.示例:重写toString (默认返回包+类+@哈希码)

  1. 2.    对象的比较 == 与equal

a)     ==

a)   比较两基本变量的值是否相同

b)   比较两个引用类型内存是否相同,是否指向同一对象

b)    Equal

a)   两对象内容是否相同

1.4      super关键字

b)   super是直接父类对象的引用

c)    可以通过super来访问父类中被子类覆盖的属性和方法

1.5      多态

多态性是OOP中一个重要特性,用来实现动态联编,就是程序的最终状态只有再执行过程才被决定而非编译期间决定

  1. 如何使用多态

a)     引用类型的两种类型

                                    i.           编译时类型:声明时的类型决定

                                  ii.           运行时类型:由对象实际类型决定

b)    多态存在的三个必要条件

                                    i.           要有继承

                                  ii.           要有方法重写

                                iii.           父类引用指向子类对象

示例  

 

注意:引用类型的类型转换

1.6        final关键字

  1. final关键字可以来修饰变量、类、方法

a)     修饰变量:相当于定义了一常量,不可更改

b)    修饰方法:在子类中不能覆盖

c)     修饰类:无法被继承

猜你喜欢

转载自www.cnblogs.com/secoding/p/9495914.html