学习网址:
Java 8 Lambda 表达式:
http://www.runoob.com/java/java8-lambda-expressions.html
Java 8 stream:
http://www.runoob.com/java/java8-streams.html
面向对象
-
Person per=new Person();
//声明并实例化,per指向new开辟的堆内存空间 -
三大特征:
封装性(对外部不可见)
继承(扩展类的功能)
多态性(方法的重载,对象的多态性) -
封装性:
目的:保护某些属性和方法不被外部看见
实现:为属性和方法进行封装是通过关键字private -
构造方法:
访问修饰符 类名称(){
程序语句;
}注意点:
构造方法必须与类名一致
构造方法没有返回值
构造方法主要是为类中的属性初始化 -
匿名对象
new Student().tell();//只调用一次 -
引用传递
-
this关键字
表示类中的属性和调用方法
调用本类中的构造方法
表示当前对象 -
static关键字
* static声明的属性为全局属性
* static声明的方法可以直接通过类名调用
*使用static方法,只能访问static声明的属性和方法,
非static声明的属性和方法是不能访问的
- 继承
class Student extends Person{}
单继承,但是可以多层继承
子类对象实例化:
1, 先调用父类构造方法
2, 再调用子类构造
-
方法重写
定义:方法名称相同,返回值类型相同,参数也相同
限制:被子类重写的方法不能有比父类更严厉的访问权限
private<default<public -
final关键字
被修饰的类不能被继承
被修饰的方法不能重写
被修饰的属性为常量
- 抽象类
abstract class className{
public abstract void Say();
}
子类(如果不是抽象类)必须重写抽象类中所有的抽象方法
不能直接实例化,需要通过子类进行实例化
-
接口
interface demo{
全局常量
抽象方法
}
实现也必须通过子类,使用implements,可以多实现
一个子类可以同时继承抽象类和实现接口
一个接口可以继承多个接口 -
多态性
体现:
方法的重载与重写
对象的多态性对象的多态性:
向上转型:程序自动完成,父类引用指向子类对象 Father f=new Son(); 父类 父类对象=子类实例 向下转型:强制类型转换 Father f=new Son(); Son s=(Son)f; 子类 子类对象=(子类)父类实例
-
instanceof关键字
用来判断一个对象是不是一个类的实例
People p1=new People(); System.out.println(p1 instanceof People);//true System.out.println(p1 instanceof Student);//false //向上转型后 People p2=new Student(); System.out.println(p2 instanceof People);//true System.out.println(p2 instanceof Student);//true```
-
泛型(Generic)
访问权限 class 类名称<T>{}
Demo<String> demo=new Demo<String>;
构造方法:
Demo<String> demo=new Demo<String>("使用泛型的");
泛型接口
interface 接口名称<T>{}
泛型方法
public <T>T fun<T t>{}
泛型数组
T array[]
- 通配符
调用一个以泛型类为参数的方法:
public static void tell(Con1<?> con1) {}