面向对象-抽象与接口
代码块
局部代码块
写在方法内部的代码块
局部代码块:有什么用?
1.没什么用:if for while 控制代码执行流程:一般要与if之内的结合才有用
2.作用域的时候:
2.构造代码块
写在类的结构体重的【会在每一个构造方法中复制一份】
静态代码块
写在类的结构体中的代码,使用static修饰的
特点会优先于主方法执行:
静态加载-----【类---加载----初始化{静态语句执行}---执行】
做一些初始化操作。例如之前的恶汉模式
继承与组合的关系
组合的概念
组合多个类的对象,调用传参
组合的代码实现
class _02ZhuHe{
public static void main(String[] args){
//创建一个手机卡对象
Card card=new Card("53555");
//创建一个手机对象
CellPhone phone=new CellPhone(card);
//调用手机对象的展示手机号方法
phone.showNum();
}
}
//设计一个类
class Card{//设计一个手机卡类里面保存电话号码,有查询手机卡号码的行为
String num;
Card(String num){//有参的构造方法
this.num=num;
}
public void print(){//查询手机卡号码
System.out.println("你的手机号码是"+num);
}
}
//设计一个类
class CellPhone{//设计一个手机类,里面有电话卡
Card card;//
CellPhone(Card card){//创建一个有参构造
this.card=card;
}
public void showNum(){//展示手机号码
card.print();
}
}class _02ZhuHe{
public static void main(String[] args){
//创建一个手机卡对象
Card card=new Card("53555");
//创建一个手机对象
CellPhone phone=new CellPhone(card);
//调用手机对象的展示手机号方法
phone.showNum();
}
}
//设计一个类
class Card{//设计一个手机卡类里面保存电话号码,有查询手机卡号码的行为
String num;
Card(String num){//有参的构造方法
this.num=num;
}
public void print(){//查询手机卡号码
System.out.println("你的手机号码是"+num);
}
}
//设计一个类
class CellPhone{//设计一个手机类,里面有电话卡
Card card;//
CellPhone(Card card){//创建一个有参构造
this.card=card;
}
public void showNum(){//展示手机号码
card.print();
}
}
枚举
1. 枚举的概念
比较简单的,设计一个数据类型:只存在固定的几个值
2. 枚举的语法及基本使用
enum Sex{
MAN("男"),WOMAN("妹子");
String name;//定义一个枚举属性的字段
Sex(String name){//有参的构造方法
this.name=name;
}
public String toString(){//覆写toString方法
return name;
}
}
3. 枚举的拓展
1.枚举值,写中文,男,女汉子不合适,编程都是用英文
2.中国人来说,打印英文不合适,希望打印中文
枚举语法特点:可以有构造方法的,字段,方法的
3.内置一个字段
4.发现枚举可以调用Object里东西,枚举与Object判断类型也是true
私生子不能说名的
5.枚举都是隐式的发展:所有的枚举:拓展至Enum类
抽象类
1. 抽象的引入
1.抽象类:abstract 修饰的一个类
2.抽象方法:abstract修饰的一个方法,只能存在于抽象类中,或者接口中
2.抽象方法
abstract修饰的方法,不能有方法体,必须覆写抽象方法
2. 抽象支持多态写法
1.作为一个模板的:只是为了抽取公共的属性
2.规定了一个更大的数据类型,很好的支持多态的写法
3.规范子类的写法
接口
接口的引入
接口的语法验证及接口与类的使用
1.接口与类的使用:
充电宝插入到接口,在充电宝端实现了充电
class USBImpl implements USB{}//USBImpl对接口USB的一个实现
2.软件接口java接口的介绍
软件与软件之间数据交互的接口
java中的接口
Java中的接口:是一个跟类很相似的结构
3.类实现接口
1.一个类是可以实现多个接口的:传说中的干爹
2.一个类实现了接口,还可以继承类:
继承应该在前面,实现应该在后面,亲爹比干爹亲
4.接口与接口
多继承关系,一个接口可以继承多个接口
内部类
内部类介绍
在一个类中再定义一个类
内部类创建对象及方法使用
非静态
外部类名.内部类名 变量名=new 外部类().new 内部类();
静态:
外部类名.内部类名 变量名=new 外部类名.内部类名();
匿名内部类
定义在主方法内
直接实现覆写父类的方法,不用创建子类
语法:
noName(new父类名(){//把里面看成是USB实现的一个对象【有对象了,就该有类,但是看不到名字,匿名内部类】
public void print(){//覆写接口中的抽象方法
System.out.println("匿名内部类");//覆写父类方法
}
});