9.6号笔记

/*
包
包一般都是自动导,可以在SETTING里搜索AUTO来设置,自动
同名的只能搞一个,比如一个包里有student,另一个包里也有student,现在在一个类里两个都要用,这时候只能导一个,第二个要用包名.类名来访问
 */

/*
权限修饰符
private本类
缺省 本类+同一个包访问
protected 本类+同一个包+子类
public 随便访问
 */

/*
final最终
修饰类,方法,变量,只要用final修饰了,就不能有子类,被重写,被修改
比如修饰类 final class Animal{} 那么Animal就不能被继承,用于工具类
修饰方法   public final void f(){}
修饰变量   final int a = 5;
final修饰基本类型时,让数据不能改变
final修饰引用类型时,让指向的地址值不能改变,但是地址值指向的东西实际是可以改变的
 */

/*
变量
有两种,局部变量和成员变量
方法里随便搞的变量就是局部变量,比如方法里定义int a = 2; a是局部变量
成员变量是类里面的,有两种,一种是静态成员变量,一种是实例成员变量
静态比如在线人数,public static int onlinenumber = 100;
实例比如student类里面具体一个学生叫什么名

如果用final修饰局部变量和静态成员变量,可以避免数据被更改
如果用final修饰实例成员变量就没什么意义了,比如修饰name,那么每个学生都会是同一个名字而且无法更改
 */

/*
常量
命名方式:SCHOOL_NAME 所有字母全大写,下划线链接
用常量主要为了方便维护提高可读性,比如学校名称如果更改,要修改很多地方.如果用常量,直接修改常量的值就行
public static final String SCHOOL_NAME = "学校"
必须给他赋值,因为后面改不了了,不赋值永远没有值了
*/

/*
enum枚举
枚举可以提高代码可读性和规范性,避免出现问题.
比如设计游戏让人物移动,这时我们有4个方向,上下左右,这是全部的可选项,此时可以定义一个enum
public enum move(){
    UP,DOWN,LEFT,RIGHT
}
此时别人再设计方法让他移动的时候,入参就传一个enum进去
public static void move(move m){
    直接用switch来枚举这几种情况就行,要用switch才有意义.可以避免瞎写或者意义不明
    switch(m){
       case UP
       case DOWN
       case LEFT
       case RIGHT
    }
}
 */

/*
抽象类
建的时候写abstract class,里面可以写抽象方法,方法不能写方法体.
抽象类就是一个不完整的设计图,让子类去继承,然后子类重写那个方法,实际上是约束子类必须重写这个功能.
其他功能跟别的类没啥区别
如果有抽象方法,这个类必须定义成抽象类
alt+enter快速重写所有
抽象类是不能创建对象的,因为里面方法方法体都没有
和final是相反的
*/

/*
模板方法模式
定义一个抽象类,里面可以写好一些方法,再写一些抽象方法.
必须写作文,作文开头结尾都是一样的,可以直接把方法定义好,用final定义更好
中间部分就定义一个抽象方法
 */


/*
接口
接口是一种设计模式,里面只能写抽象方法和常量. 因为接口是一种规范思想,规范一定会公开,所以public static final abstract都可以不写
( public static final )String SCHOOL_NAME = "黑马";
( public abstract ) void eat();
interface可以被多实现implement
一个类实现接口,必须重写所有接口里需要重写的抽象方法,否则必须定义为抽象类
接口可以继承接口,比如一个类要继承3个接口,那一个一个写很麻烦,可以先让一个接口继承俩,然后再让类继承那一个即可

JDK8以后,为了更新接口,系统改版升级了,里面也可以写带有方法体的方法了.
更新以前因为接口里只能定义抽象方法,如果要加个功能,每个实现这个接口的类都要重写这个方法,太麻烦了
但是要求是用 default修饰, default void run(){}; 直接就可以用,如果冲突的话需要继承的类重写
如果要定义静态方法,那就直接定义 static void run(){}; 但是这个方法必须要用接口点上方法名来调用,属实没必要
还可以定义private方法,只能在接口类那个文件内部自己调,没什么用
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值