笔记 9.18

笔记:
1.static:静态的
1)静态变量:
1.1)由static修饰
1.2)属于类的,存在方法区中,只有一份
1.3)常常通过类名点来访问
1.4)何时用:所有对象数据都一样时使用
2)静态方法:
2.1)由static修饰
2.2)属于类的,存在方法区中,只有一份
2.3)常常通过类名点来访问
2.4)没有隐式的this传递,静态方法中不能直接访问实例成员
2.5)何时用:方法的操作仅与参数相关而与对象无关
3)静态块:
3.1)由static修饰
3.2)在类被加载期间自动执行,
因为类只被加载一次,所以静态块也只执行一次
3.3)何时用:常常用于初始化静态资源(图片、音频、视频...)
2.final:最终的,单独应用几率小
1)修饰变量:变量不可被改变
2)修饰方法:方法不可被重写
3)修饰类 :类不可被继承
3.static final:常量
1)必须声明同时初始化
2)通过类名点来访问,不能被改变
3)建议:常量所有字母都大写
4)在编译时被自动替换为具体的值,效率高
4.抽象方法:
1)由abstract修饰
2)只有方法的定义,没有方法具体的实现(连大括号都没有)
5.抽象类:
1)由abstract修饰
2)包含抽象方法的类必须是抽象类
不包含抽象方法的类也可以声明为抽象类---我乐意
3)抽象类不能被实例化
4)抽象类是需要被继承的,子类:
4.1)重写所有抽象方法----常用
4.2)也声明为抽象类------不常用
5)抽象类的意义:
5.1)封装子类所共有的属性和行为,代码复用
5.2)为所有子类提供了统一的类型,向上造型
5.3)可以包含抽象方法,为所有子类提供了统一的入口
6.接口:
1)是一个标准、规范
符合这个标准就能干某件事-------API后体会
2)由interface定义
3)只能包含常量和抽象方法
4)接口不能被实例化
5)接口是需要被实现/继承的,实现类/子类:
必须重写接口中的所有抽象方法
6)一个类可以实现多个接口
若又继承又实现时,应先继承后实现
7)接口可以继承接口

 

 

interface 银联接口{
void 存款();
void 取款();
void 查询余额();
void 转帐();
}
interface 工行接口 extends 银联接口{
void 在线支付();
}
interface 农行接口 extends 银联接口{
void 支付电话费();
}
interface 建行接口 extends 银联接口{
void 支付燃气费();
}

class 工行卡 implements 工行接口{
public void 存款(){}
public void 取款(){}
public void 查询余额(){}
public void 转帐(){}
public void 在线支付(){}
}
class 农行卡 implements 农行接口{
public void 存款(){}
public void 取款(){}
public void 查询余额(){}
public void 转帐(){}
public void 支付电话费(){}
}

 

类和类----------------继承
接口和接口------------继承
类和接口--------------实现

 

Inter1 o1; //正确
new Inter1(); //编译错误,接口不能被实例化

 

Inter2 o1 = new Aoo(); //向上造型
Inter1 o2 = new Aoo(); //向上造型

interface Inter1{
void a();
}
interface Inter2 extends Inter1{
void b();
}
class Aoo implements Inter2{
public void b(){}
public void a(){}
}

 

interface Inter1{ //制定方
void a();
}
interface Inter2{
void b();
}
abstract class Aoo{
abstract void c();
}
class Boo extends Aoo implements Inter1,Inter2{ //遵守方
public void a(){}
public void b(){}
void c(){}
}

 

成员变量:
1.实例变量:属于对象的,存在堆中,有几个对象有几份
通过对象点来访问
2.静态变量:属于类的,存在方法区中,只有一份
通过类名点来访问

猜你喜欢

转载自luckybrown.iteye.com/blog/2330871