方法的定义
标准声明·:修饰符+返回值类型+方法名+参数列表public static void main(String[] args)
如main方法;
简述方法的使用,在设计模式中,代码越少,对程序运行压力就越小,所以为了减少代码的复用性,可以将重复使用的代码,通过方法定义,最后在需要的地方通过方法调用,减少代码的复用性。
比如在后期,增删改查便单独定义为一个方法。便于代码的维护。
注意
静态方法(通过static
修饰的方法)不能直接使用非静态方法,变量。原因简述:因为静态方法属于类,而非静态成员变量属于对象。
权限修饰符
public
(共有的) > protected
(受保护) > null(什么也不写) > private
(私有)
面相对象
三大部分:封装,继承,多态
面向对象在编程中,就是对类的使用,因为Java是面向对象编程,所以一般就是直接class类名进行定义,
标准创建 修饰符+class+类名{}
封装
通过例子来讲,方法,类,private(私有修饰)都可以算为一种封装,所以可以看成对一段代码进行包裹是修饰,
- 封装概述 是面向对象三大特征之一(封装,继承,多态) 是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的
- 封装原则 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问成员变量private,提供对应的getXxx()/setXxx()方法
- 封装好处 通过方法来控制成员变量的操作,提高了代码的安全性 把代码用方法进行封装,提高了代码的复用
性
而private
在Java中的使用是很频繁的,所以简述一下他
被private修饰的信息 只能当前类使用,不能被其他类直接使用,增强代码的安全,所以私有成员变量一般通过方法调用。如果方法中形参的变量名与成员变量名一样,可以通过this进行带调用。进行区分(this可以理解为谁调用,this就是这个对象)
继承
注意点添加链接描述
继承 一种类与类的关系 通过extend对类进行修饰。子类将拥有并可以直接调用父类的方法和非私有的变量信息。同时父类使用的的地方,子类也可以使用。而子类可以使用的地方父类不一定能使用。
限制:如果父类信息被private修饰,则子类不能直接获取。但是已存在于子类内存了,可以通过父类方法第调用。(super)作用与this相似,但是super是指继承的呢个对象。
方法重写 (方法重载)可以看方法四要素
- 修饰符,方法重写不能将方法的范围减少
- 返回值注意不能修改
- 方法名不能改变
- 参数列表的数据类型奴能改变,但是参数名没有影响
@Override注解可以查看方法重写是否存在问腿
继承注意点构造器(构造方法)
对象的创建就是通过new构造器,构造器也可以加如参数列表,因为每创建一个类,系统会分配一个构造器,如果你声明了带参构造器,就需要声明无参构造器,否则只能通过有参构造器进行对象创建。
多态
抽象类(abstract)
通过abstract修饰的类为抽象类,在内部可以使用抽象方法(通过abstract修饰方法),但声明的同时需要子类对方法进行重写或者通过匿名内部类对抽象方法进行实现。命名规范public abstract class 方法名{}
而抽象方法public abstract 方法名()
不需要对方法进行修饰。
注意abstract
抽象方法因为必须要被实现,所以要注意修饰符和关键字的使用(
final`,private,static)一个是无法更改,一个是私有只能在当前类中使用。还有类的方法修饰符和关键字也要注意。
接口(interface)
接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”(可以看成一个功能模板),而功能的扩展是通过实现类进行扩展。接口中只允许出现抽象方法,不能出现非抽象方法,可以被多个子类进行继承。
接口的使用是非常广泛的,在设计模式为代理开发,而且在项目实践中就是接口与实现类结合,创建接口定义功能,而实现类可以存在多个对该接口进行实现。从而实现对功能的增强。
代理开发:静态代理开发,动态代理开发。
特点
- 首先接口无法创建对象,只能通过多态进行使用
- 接口的变量使用public static final修饰,如果不写默认添加
- 接口的方法为public abstrict void 方法名(),如果不写默认添加
接口和抽象类的区别
下面是我的理解
相同点:
- 抽象类可以为子类所以可以自行理解,两者都需要被继承,需要被子类进行方法实现
- 两者都无法直接实例化对象
不同点: - 接口方法定义更为严格,方法定义自带abstract,不能声明非抽象方法,而抽象类含有非抽象方法和成员变量,所以需要对抽象方法要加上abstract修饰。
- 一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了Java的单继承)
- 接口方法只能通过public修饰,而抽象类(方法)方法可以到
多态 (父类 变量名 = new 子类();)
因为接口可以被多个类进行实现,所以可以单个功能进行多种拓展,而且可以减少代码的修改。减少代码的紧密型(松偶性)
对于成员方法:编译的时候看=左边,运行的时候看=右边
对于成员变量:编译的时候看=左边,运行的时候看=左边