Java学习_0712接口、抽象类内部类,继承
7月12日:知识点:1.面向对象:三大特征:封装,继承,多态。
对象:是具体的一个 事物(比如:我的衣服,我的电脑)
特征:具有状态和行为(也就是属性和方法)
类:是具有相同属性的行为的对象的抽象,是最基本的程序单元,他
的本质上是一种数据类型,使用类名称来声明对象。类只能包含
属性和方法。
通过类来生成对象。
2.构造方法:方法名必须和类名相同,并且没有返回值。
作用:执行对象初始化。
构造函数可以有参数也可以没有参数
3.getter/setter:叫做Javabean 也就是我们做的项目中的实体类
4.封装:优点:让细节隐藏,更安全,可以有选择性的隐藏。
通过访问修饰符实现。
访问修饰符:public 公开的,谁都可以访问。
Private 私有的,只在类的内部使用
Protected 受保护的,可以被子类和同一个包内
其他类访问
默认(friendly)同一个包内可以使用
5.继承:父类中私有的,子类中不能有。
Java中只支持单继承,通过extends实现。
在子类中访问父类的属性:super.属性
在子类中访问父类的方法:super.方法super()调用父类的构
造方法。
继承中,构造方法的调用顺序:先父类在子类。
比如:A extends B A继承B A中具有B的全部属性和方
法。
6.多态:相同的操作用在不同类型的对象上,产生不同的效果,通过
重载和重写实现。接口也是多态的一种表现。
重载(Overloading):同一个类,多个方法,具有相同的名字,不同的
参数列表。
方式:参数顺序、类型、个数不同可以,返回值
不同不能实现重载。
重写(Overriding):发生在子类和父类之间多态性的表现。
在子类中定义某方法与其父类中有相同的名称和参
数,并且没有返回值和抛出异常的类型与父类一致。子类度喜爱那个使用这个方法的时候,将调用子类定义的方法。
People peo=new Student();
Peo.hellow();
这样调用的是Student里面的hellow方法。要想这么写,必须是重写的才能实现,如果People没有hwllow方法,那么这样写就会报错。
7.static关键字:优点:调用起来简单,直接用类名.方法(属性)名就能
调用。
初始化的时候早。
Static的属性,是共有的,只要一个方法进行修改,那所有的就进行修改了,直到下次修改时才进行修改。然后到程序结束的时候有才会被释放。
静态块:static{
System.out.println(“我是神”);
}
静态块在new时候就会自动调用,主要作用就是做一些初始化的工作。
8.this关键字:可以看做是一个变量,每个对象都会自动保存一个变量
this指向对象自己。
this();(调用构造方法)在构造方法中,调用本类方法,
会造成死循环,不允许这样写,会报错。
9.包:出现在程序的最上面。一般包的名字都是小写的。
com.qrsx.oa.users
公司.公司名.项目名称.模块名称(com是company的简写)
Java默认的包为Java.lang不用导入。
10.抽象类,抽象方法:声明方法的存在,但不去实现他的类/方法。
Public abstract void fun();不能加{}
如果一个类包含了抽象方法,那么这个类必须
是抽象类。
抽象类也可以包含非抽象方法和变量。
抽象类不能被实例化,要用的话,必须用子类
来继承并全部实现父类里面的方法,然后用
父类 fl=new 子类();然后fl.方法名();来调用。
子类要么全部实现抽象方法,要么子类本身是
抽象类。
不能定义抽象的构造函数,和静态方法。
11.接口:用interface定义,是一个类,interface只能用来修饰类。
public interface Text{
public void fun();
}
不能有任何具体方法的实现,默认为public abstract fun();
只能是public类型的。
可以定义常量:public static final f=0;或者直接f=0;
类一次只能继承一个类,但是可以继承多个接口用,隔开。
实现:用impleaents+接口名来实现。
public class Text impleaents jiekou1,jiekou2{
实现接口1和接口2 的全部方法
}
调用接口的方法:接口 j=new 实现类();’
接口就是需要由其他类实现的行为模板。
当多个接口中方法相同时:同名不同参,重载
完全相同,实现一个
返回值不同,不行
接口定义完之后实现它的类不能定义为抽象类。
接口只能被类实现而不能继承。
接口之间可以相互继承。
12.内部类:也叫做镶嵌类,也就是在类中定义类。
解决Java中没有多继承这个问题。
内部类可以让我们将逻辑上相关的一组类,组织起来,
由外部类来控制内部类的可见性。
使用方法:内部类 n=外部类对象.new 内部类():
n.方法();
外部类不能访问内部类的属性,内部类可以访问外部类
内部类不能用public定义,必须声明为final才能定义属
性。