Java基础学习笔记【02】方法覆写、快捷键、super、this、单例模式、适配器
时间:2015-10-08 20:05:34
收藏:0
阅读:1165
- 访问类型默认default就是默认没写访问权限,就是包下的访问权限(类内部、同一个包)
- 除了private访问权限本类,其他的访问权限都包括包
- 继承:【A继承B】
1
类名Aextends类名B -
类的方法【覆写】:
方法要素 描述 方法名 子类父类的覆写方法名一致 返回值 小于父类的返回 参数 小于父类的参数类型 访问类型 大于父类的访问类型 覆写:1publicvoidFun(object obj){ }12@overridepublicvoidFun(string str){ } - 如果子类要调用父类被覆盖的实例方法,可用super作为调用
12
例:调用父类的方法Show();super.Show() - 调用父类的构造函数,super必须放在第一行,和this一样
1
super(参数) - 无法从静态上下文中引用非静态的super和this,静态方法中只能调用静态属性字段
- 【注意】静态方法不能被覆写
- boolean结果: 判断对象是否属于某个类,返回值为bool类型
1
对象instanceof类名 - 当一个引用类型的变量若声明为父类的类型,但实际上引用的是子类的对象(多态情况):
(1)此时该变量不能再访问子类中自己特有的字段和方法;
(2)若子类覆写了父类的方法,那么此时通过变量访问到的方法,实际上是子类的方法; - 除了Integer和Character定义的名称和对应的基本类型差异大,其他六种都是将首字母大写就可以了
- 【Ctrl+1】自动修复使得类名与文件名一致
- 定义接口:
实现接口:123
interfaceIUSB(接口名称) {voidrun();(方法返回值,和方法名,参数没有任何实现)}123classMouseUSBImplimplementsIUSB{重写方法的具体实现} - 一个类既有父类又有接口的时候, 先继承,再实现;
- 代码块:
(1)局部代码块:局部位置,用于限定变量的生命周期。
(2)构造代码块:在类中的成员位置,用{}括起来的代码。每次调用构造方法执行前,都会先执行构造代码块。
作用:可以把多个构造方法中的共同代码放到一起,对对象进行初始化。
(3)静态代码块:在类中的成员位置,用{}括起来的代码,只不过它用static修饰
作用:一般是对类进行初始化 - 代码块的执行次数顺序
(1)静态代码块 -- 构造代码块 -- 构造方法
(2)静态代码块:只执行一次
(3)构造代码块:每次调用构造方法都执行
static修饰的构造代码块, 特点: 优先于主方法的执行,只执行一次, 可以用来给静态变量赋值; - 常用快捷键
快捷键 功能描述 ctrl+shift+f 格式化 ctrl+shift+o 导入包(多个提供选择) ctrl+/ 单行注释、取消单行注释 ctrl+shift+/ 多行注释 ctrl+shift+\ 取消多上注释 alt+↑ 代码上移动 alt+↓ 代码下移动 F3、Ctrl+鼠标点击 查看源码 - 单例模式: 保证项目中的一个类在运行期间有且只有一个实例对象:饿汉式、 懒汉式;
(1)把构造方法给私有化,保证外界不能创建对象
(2)自身在内部先创建一个对象,再使用private修饰起来,
(3)向外暴露一个全局的静态的方法用于返回内部创建的对象;因为静态成员只能访问静态成员,那么此时必须把对象使用static修饰 - 继承中成员变量的关系:
(1)子类中的成员变量和父类中的成员变量名称不一样没有什么太大的关系
(2)子类中的成员变量和父类中的成员变量名称,在子类方法中访问一个变量的查找【就近原则】
【1】在子类方法的局部范围找,有就使用
【2】在子类的成员范围找,有就使用
【3】在父类的成员范围找,有就使用
【4】如果还找不到,就报错。 - this和super的区别?
this super this代表本类对应的引用 super代表父类存储空间的标识
(可以理解为父类引用,可以操作父类的成员)调用成员 this.成员变量 【调用本类的成员】 super.成员变量 【调用父类的成员】 调用构造函数
【注意】this(参数)或者super(参数),必须出现在第一条语句上。如果不是放在第一条语句上,就可能对父类的数据进行了多次初始化,所以必须放在第一条语句上this(参数) 【调用本类的构造】 super(参数) 【调用父类的构造】 调用成员方法 this.成员方法名 【调用本类的成员】 super.成员方法 【调用父类的成员方法】 - 饿汉式【线程安全】:
1234567
classSingleton {privateSingleton() {}privatestaticfinalSingleton instance =newSingleton();publicstaticSingleton getInstance() {returninstance;}} - 懒汉式【线程不安全】:
12345678
classSingleton {privateSingleton() {}privatestaticSingleton instance =null;publicstaticSingleton getInstance() {instance=instance==null?newSingleton():instance;returninstance;}} - final:表示最终的; 可以修饰 类,方法,变量;
(1)修饰的类 表示太监类,不能被继承;基本数据类型包装类全是
(2)修饰的方法 表示 不能被子类覆写 ;
(3) 修饰的变量: - 适配器:一个接口有多个方法,但是我们只需要其中一些实现,让适配器去实现标准,并全部覆写方法,但是方法体为空,适配器用abstract修饰
适配器123456
interfaceIWindow{voidmax();//最大化voidmin();//最小化voidclose();//关闭}继承写需要的方法1234567abstractclassWindosAdapterimplementsIWindow{//让适配器去实现标准,并全部覆写方法,但是方法体为空publicvoidmax(){}publicvoidmin(){}publicvoidclose(){}}1234567classMyWindowextendsWindosAdapter{publicvoidclose()//应当覆写三个方法/我只关心close方法{System.out.println("关闭我的小窗口");}}
评论(0)