目的
模拟一个界面,设置字体大小和颜色
复杂方法
阅读界面, 显示文本
public class Read {
private String text;
private String color;
private int size;
public Read(String text){
this.text = text;
}
模拟进入设置页面
public void goToSetting(){
Setting setting = new Setting(this);
setting.startSetting();
}
创建一个Setting类
public class Setting {
//记录我们为谁设置字体大小颜色,设置完之后将数据返回给谁
Read delegate;
public Setting(Read delegate){
this.delegate = delegate;
}
public void startSetting(){
System.out.println("开始设置");
System.out.println("......");
System.out.println("设置结束");
delegate.change("黑色",18);
}
}
再回到Read类,开始设置字体颜色和大小
public void goToSetting(){
Setting setting = new Setting(this);
setting.startSetting();
}
public void change(String color, int size){
System.out.println("设置前的颜色:"+ this.color+"设置前的大小:"+this.size);
this.color = color;
this.size = size;
System.out.println("设置后的颜色:"+ this.color+"设置后的大小:"+this.size);
}
使用接口实现数据回调
定义一个接口,统一管理传递数据的方式,并且能保证每个使用Setting的类都必须实现这个方法
定义内部接口
//使用接口定义一套方法 强制使用者来实现这个方法
//能保证我需要传值的时候 就能找到这个方法
public interface FontSettingInterface{
//自己规定的方法
void change(String color, int size);
}
创建对象
//使用多态
FontSettingInterface obj;
public Setting(FontSettingInterface obj){
this.obj = obj;
}
传递参数/数据
public void startSetting(){
System.out.println("开始设置");
System.out.println(".......");
System.out.println("设置完毕 即将返回结果");
obj.change("黑色", 20);
心得体会
之前学习的时候有点水没有怎么认真听,但是最近课后有自己自学了一点,然后上课听的时候不会像之前一样大脑完全是放空状态。学习是个慢过程,虽然现在一些知识还是懵懵懂懂的,但是日积月累,总会有幡然醒悟的一天。
网友评论