1.面向对象概念:将功能封装到对象里,万物皆对象。
i. 特点: 符合人类思考习惯特点。
将复杂的事情简单化。
将程序员从执行者转换成了指挥者
ii. 开发:不断的继承对象,使用对象,指挥对象做事情.
iii. 设计:管理和维护对象之间的关系。
iv. 特点: 封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式。
继承:利用继承可以在原有的类的基础上创建新的类,并可以直接使用原有的类的方法和属性,这样要比重新建新类要简单的多.利用继承可以减少相似类的重复创建.一个类用final修饰,则这样的类成为最终的类,有final修饰的类不可以被继承。
多态:虽然java语言不支持多态,但是java支持接口,接口中的方法是抽象方法,任何实现接口的 类都要具体实现接口方法,从而实现接口的类就有了同名的方法,但是方法实现各不相同, 这样就实现了多态.通过类与类之间的继承或覆盖实现。多态的体现是父类的引用指向了自己子类的对象。如果想调用父类中的方法就要使用父类的引用类创建一个父类的对象。
2.This: a)指代当前对象,当局部变量和成员变量同名时,可以同过this关键
字的用法来区分。
b)在构造方法中来调用该类的其它构造方法,这是要求this语句必须
是构造方法的第一句,所以this语句和super语句不会同时出现在构造 方法中。Super:用于子类构造函数的第一条语句。目的是调用父类的构造函数。若子类没有加super,程序会默认调用 父类无参的构造函数。
3.静态导入:import语句可以导入一个类或某个包中的所有类import static语句导入一个类中的某个静态方法或所有静态方法语法举例: import static java.lang.Math.sin;import static java.lang.Math.*;
4.可变参数:一个方法接受的参数个数不固定。调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。例如:public static int getSum(int i,int...args){int sum=0;for (int j : args) {sum =j;}return sum;}
5.匿名对象: 匿名对象是对象的简化形式 匿名对象有两种使用情况: 当对象方法仅进行一次调用匿名对象可以作为实际参数进行传递
6.构造代码块: 用于对象初始化,对象一创立就执行且优先于构造函数。
与构造函数的不同:构造代码块用于所有对象初始化,构造函数用于对应对象的初始化。构造码块定义不同构造函数中相同的部分,共性的东西。
7. 构造函数,构造代码块,静态代码块执行顺序:类加载进内存-执行静态代码块-创建对象-执行构造代码块-执行对应构造函数。
8.抽象类和接口的区别: (1)抽象类可以定义抽象方法和非抽象方法,接口只能定义抽象方法。
(2)接口没有构造方法,抽象类可以有构造方法,但是接口和抽象类都不能创建对象。
(3)一个类只能继承一个类,但是可以实现多个接口。
(4)接口中的成员都是public的。
(5)继承只能是单继承,接口可以是多实现。
9.单利模式:两种设计模式 1.懒汉式:
public class DBConnection{
private DBConnection() {}
private static DBConnection dbc=null;
public static DBConnection newInstance(){
if(dbc==null){
dbc=new DBConnection();}
return dbc;
}
}
2.饿汉式:(建议使用)
public class DBConnection{
private DBConnection() {}
private static DBConnectiondbc=new DBConnection();
public static DBConnection newInstance(){
return dbc;
}
}