Java基础视频笔记(二)

这部分是Java基础视频笔记的第二部分~

内容包括:封装、继承、多态、递归调用、引用传递、抽象类、接口等OOP的重要概念:

这部分的内容需要重点理解并牢记;

 

16、封装:对外部不可见
        继承:扩展类的功能
        多态:方法的重载、对象的多态性

17、方法的递归调用:
     方法调用自己本身,常用于遍历文件夹、手机SD卡;
  递增递减,回归本身

18、封装性、构造方法、匿名对象:
   封装的目的:保护某些属性和方法不被外部看见;
   封装的实现:通过关键字private声明,进行属性和方法的封装
     创建该属性的set和get方法,作为外部访问的接口,set设置,get得到

匿名对象不用声明名字,直接实例化,程序中只使用一次的对象才可以使用匿名法;
new Person().tell();

构造方法:没有返回值类型,随着类的实例化自动执行,名称必须与类名一致;

构造方法就是构造器;

访问修饰符 类名称{
    程序语句
}

构造方法是为类中的属性初始化;
每个类都会在实例化后调用构造方法,如果没有,就会在编译的时候创建一个无参的构造方法;
构造方法也可以重载

19、引用传递、this、static关键字
   引用传递:通过在方法中实例化类,重新给类的变量赋值

this:

  1、通过this表示本类中的属性;
       2、调用当前类中的方法;
       3、this();放在构造方法第一行,直接调用重载的无参构造方法的语句;
       4、比对当前对象是否是同一个对象


static:
     1、static声明全局属性
     2、static方法,最好通过类名调用
     3、static方法只能访问static方法和属性,非static方法不能直接访问,

需要实例化类对象才可以通过 . 号调用;
只能访问静态方法和属性



20、继承:class c extends f
  类名都要大写
  extends 之后,子类可以从父类继承所有属性,并可以扩增自己的属性;

继承的限制:
1、Java中只允许单继承
2、子类可以继承父类的属性,但是不能在类中直接访问父类的私有属性;
  需要通过get和set方法,例如,在public void tell()等方法中用getAge()获取

21、子类的实例化过程:先调用父类的构造方法,再调用子类的构造方法;
  先有父,再有子;
  长者先,幼者后;
  子类也叫父类的派生类;


22、super关键字:
  父类、子类的方法的重写;
  super.tell(); //当父类和子类出现重写的方法,需要使用super关键字调用父类的方法
        //super关键字 可以强行调用父类方法的执行;
        //构造方法在编译的时候,会默认调用super()方法来实现同样的效果;

访问权限:
private < default < public
1、private 在当前类中访问
2、default 在同一个包内访问
3、public  整个工程下都可以访问

子类的构造方法不能比父类有更严格的访问权限;


23、重载与重写区别:

多态:重载、重写体现了方法的多态性

Overloading: Overriding:

重载:方法命名相同,参数类型、参数个数不同;   同一个方法,实现不同功能    
重写:方法命名相同、参数类型、返回值也全部相同;    用于子类继承父类的时,扩展父类方法功能  也叫覆盖

定义:
重载:对权限没有要求;
重写:被重写的方法,不能有比父类更加严格的权限;

范围:
重载:发生在一个类中
重写:发生在继承中


24、OOP三大特性:继承(父类派生、子类扩展、重写)、多态(重载,方法同名不同参)、封装(private)

25、抽象类和接口:OOP最重要的部分之一
   final关键字:完结器
   final声明的类不能被继承
   final声明的方法不能被重写
   final声明的变量变成常量、常量是不可以被修改的
   final修饰的属性要用大写

26、抽象类:包含一个抽象方法的类
      ·抽象方法:声明而未被实现的方法,抽象方法必须使用abstract关键字声明
      ·抽象类不能直接被实例化,要通过其子类进行实例化
      ·抽象类的子类,必须重写抽象类中的抽象方法

public abstract void say();
  作用:对同一类事物的共有特征的一个抽象概括,子类可以对抽象类的功能进行扩展,设置自己的专有属性
  比如水果是抽象类,苹果、香蕉、橘子是抽象类的具体子类,抽象类不能实例化,具体子类可以

27、接口是Java中最重要的概念:

  * 接口是一种特殊的类,全部由全局常量和公共的抽象方法所组成;  接口是招牌,告诉我们它对接的功能

格式:
interface InterfaceName{
    全局常量;
    抽象方法;
}

* 接口必须通过子类才能实例化,使用关键字implements实现,也必须重写接口中的抽象方法;

class A implements Inter1{//子类实现Inter接口

}

* 接口是可以多实现的
class A implements Inter1,Inter2{

}

* 一个类可以同时继承抽象类和接口
class A enxtends Abs implements Inter1,Inter2{

}

* 接口不能继承抽象类,但可以通过extends 同时继承多个接口,实现接口的多继承。

原文地址:https://www.cnblogs.com/jackchiang/p/4585095.html