目录
一:面向对象
1.基础概念
面向对象程序设计的特点: 封装,继承,多态。
封装:将对象的属性和行为封装起来,其载体就是类,类通常会对用户隐藏其实现细节。
继承:继承是实现重复利用的手段,子类通过继承,复用父类属性和行为的同时
又添加子类特有的属性和行为
多态:将父类对象应用于子类的特征就是多态。子类继承父类特征的同时,也具备了自己的特征,
并且能够实现不同的效果,这就是多态化的结构。
二:类与对象
2.1类的构成
2.2 类的访问机制
2.3 成员变量和局部变量异同点
在Java中对象的属性也称为成员变量。成员变量的类型可以设置为Java中合法的数据类型
局部变量:如果在成员方法内定义一个变量,那么这个变量被称为局部变量。
局部变量在方法执行时被创建,在方法执行结束时被销毁。
2.4 权限修饰符比较
2.5 class关键字
Java中定义类时使用class关键字
* class 类名称{
* // 类的成员变量
* // 类的成员方法
* }
2.6 构造方法
在类中除了成员方法之外,还存在一种特殊类型的方法。构造方法与类同名的方法,对象的创建
就是通过构造方法完成的。每当实例化一个对象时,类都会自动调用构造函数方法。
构造方法特点如下:
构造方法没有返回类型,也不能定义为void。
构造方法的名称要与本类的名称相同。
构造方法的主要作用是完成对象的初始化工作,它能把定义的参数传给对象成员。
2.6 this关键字
当类中的成员变量与成员方法中的参数重名时,会导致方法无法直接使用成员变量。
在Java语言中规定,使用this关键字来代表本类对象的引用,this关键字
被隐式地用于引用对象的成员变量和方法。
2.7 static 关键字
在Java程序中,把共享的变量用static修饰,那么该变量就是静态变量。
2.8 继承
使用extends关键字让一个类继承另一个类。子类在继承父类的同时,也继承了
* 父类中的属性和方法。Java仅支持单继承。
![](https://i-blog.csdnimg.cn/blog_migrate/a3d39eb168eb620efcabb2cf7fe000c6.png)
2.9 方法的重写
父类的成员都会被子类继承,当父类中的某个方法并不适用玉子类时,
就需要在子类中重写父类的这个方法。重写(还可以成为覆盖)就是在
子类中将父类的成员方法名称保留,重新编写父类成员方法的实现内容,
更改成员方法的存储权限,或者是修改成员方法的返回值类型。
【注意】:在继承中还有一种特殊的重写方式,子类与父类的成员方法返回值,方法名称
参数类型及个数完全相同,唯一不同的是方法实现内容,这种特殊的重写方式被称为重构。
//重载和重构 https://www.runoob.com/java/java-override-overload.html
*
![](https://i-blog.csdnimg.cn/blog_migrate/ce5d818a35b6c18dc2d0fa0aa5d13f26.png)
2.10 super关键字
如果子类重写了父类的方法,但是想在子类的方法中实现父类的原有方法怎么办,为了
解决这种需求,Java提供了super关键字,super关键字代表父类对象
语法:
super.property;
super.method();
2.11 多态性
补充:再看方法的重载和重写区别
三: 高级概念
3.1方法的重载
构造方法的名称由类名决定。如果以不同的方式创建某个类的对象,
那么就需要使用多个形参不同的构造方法来完成,为了让这些方法名相同但形参不同的构造方法同时存在,
必须用到"方法的重载",方法的重载允许同一个类中同时存在多个同名方法,只要这些
方法的参数个数或者类型不同即可。
3.2 instanceof关键字
判断父类对象是否为子类的实例,,还可以判断某个类是否实现了某个接口。
该表达式的返回值为布尔型
3.3 抽象类与接口
在Java中,抽象类不能产生对象实例。定义抽象类,需要使用abstract关键字。
定义抽象类语法:[权限修饰符] abstract class 类名{}
定义抽象方法语法: [权限修饰符] abstract 方法返回值类型 方法名(参数列表)
从抽象方法语法可以看出,抽象方法是直接以分号结尾的,没有方法体,抽象方法本身没有任何意义
除非被重写,而承载这个抽象方法的抽象类必须被继承。实际上,抽象类除了被继承之外没有任何意义
3.4 接口
接口是抽象类的延伸,可以将它看作纯粹的抽象类,接口中的方法都没有方法体。
接口使用interface关键字进行定义
语法:
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量;
[public] [abstract] 方法;
}
3.5 final关键字
被final修饰的类,方法和变量不能被改变
如果希望一个类不允许任何类继承,并且不允许其他人对这个类进行任何改动,可以将
这个类设置为final类
语法:
final class 类名{}
final 方法。被final修饰的方法不能被重写
final变量: 不可以再改变变量的值,通常被视作常量
四.其它
4.1Java中值传递
总结出精髓:适用于变量赋值和形式参数赋值。
1)如果变量是基本数据类型,此时赋值的是变量所保存的数据值
2)如果变量是引用数据类型(例如数组或者对象),此时赋值的是变量所保存的地址值。
public class tranfervalue {
public static void main(String[] args) {
tranfervalue exam1= new tranfervalue();
int m = 10;
int n = 5;
System.out.println("m: "+m+" n: "+n);
exam1.swap(m,n);
System.out.println("m: "+m+" n: "+n);
}
public void swap(int i, int j){
int temp =i;
i = j;
j = temp;
}
}
4.2 四种权限修饰符
4.3mvc设计模式