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 同时继承多个接口,实现接口的多继承。
作 者:蒋至乙 出 处:http://www.cnblogs.com/jackchiang 文章内容欢迎转载,但请保留此段声明,并在页面醒目位置给出原文连接,感谢您的支持。 人生在世的全部意义,不是为了享受,而是为了帮助别人脱离苦难、获得幸福~