IT十八掌第六天总结(含作业)

/**
*定义三个接口,然后定义一个接口继承三个接口,创建对象
*/
//创建 白 富  美 三个接口
interface  IWhite{
 public void white();  //定义一个空的方法

}
interface  IRich{
 public void rich();

}
interface  IBeauti{
 public void beauti();

}
interface IRun{           //新增加一个类
	public void run();
}
//定义一个IWRB 接口 同时继承三个接口
interface IWRB extends IWhite, IRich ,IBeauti{

}

//创建一个Womanter 实现IWRB
class WomanStart implements  IWRB { 
	//实现三种方法

	public void white(){
		System.out.println("I‘m white");
	}
	public void rich(){
				System.out.println("I‘m rich");

	}
	public void beauti(){
				System.out.println("I‘m beauti");

	}
}

class WomanStartRun extends WomanStart implements IRun{ //通过继承和实现的方法实现 扩张
	public void run(){
		System.out.println("小跑!!!!");

	}
}
//创建土豪类
class RichMan{
	public void marry (IWRB girl){  //声明一个marry方法 如果符合条件则……
	 System.out.println("喝个茶!!!");

	}
	public  void run (IRun run){
	run.run();
	}
       
}
//创建一个类
class RichManDemo{
	public static void main(String [] args ){
	  RichMan m = new RichMan();  //new 一个土豪
	  WomanStart w = new WomanStart() ; //new 一个WomanStart
	  m.marry (w);  //调用marry 
      
	   WomanStartRun ru = new WomanStartRun();//new 一个WomanStartRun 
	   m.run(ru);
	}
}

接口 
   接口的出现降低耦合性 ---解耦合
 

 Adapter : 适配器 抽象类。
 适配器模式
 ——————————————————————————————
   如果接口中的方法较多,而使用接口的时候却只关心其中一个或者几个方法,(关心的方法较少),
   如果采用常规手段,就需要对每个方法都要加以实现,可以创建一个类型来实现接口,对不关心的方法进行空
   实现,对关心的方法保持不变、定义的新类继承抽象类后,将所关心的方法加以实现即可。
     此种模式就称为 适配器模式,常用于UI 设计中的按钮点击事件的处理中。

多态

------------------
定义:
   某一类事物的多种存在形态。
   对继承的类来讲,使用父类类型引用子类的对象。
   对于接口来说,可以使用接口引用实现了该接口的类所创建的对象。
好处和作用:
   多态的存在提高了程序的扩展性和后期可维护性

前提:
   需要存在继承或者实现关系
   要有覆盖操作

内部类
————————————————————————————
    将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类)。
访问特点:
    内部类可以直接访问外部类中的成员,包括私有成员。
    而外部类要访问内部类中的成员必须要建立内部类的对象

内部类的位置

   内部类定义在成员位置上
       可以被private static成员修饰符修饰。
       被static修饰的内部类只能访问外部类中的静态成员。
   内部类定义在局部位置上
       也可以直接访问外部类中的成员。
       同时可以访问所在局部中的局部变量,但必须是被final修饰的。

[作业1]
------------------------------------
	使用抽象类和接口实现适配器模式设计。涉及的类和接口分别为ButtonListener(接口),
	其中含有click() / dbclick() / keyUp() / keyDown()等方法。
	ButtonAdapter(按钮适配器类),适配器中对非click()方法进行默认实现。
	Button类中添加addListener(ButtonListener l)方法。

[作业2]
------------------------------------
	阐述什么是多态。
	为什么函数可以覆盖,而属性不能覆盖?

/**
* [作业1]
*定义接口函数
*/
// 先定义 四种接口
interface ButtonListener{
	void click();           //单击       public 可以省略
	void dbClick();         //双击       
	void keyUp();           //按键释放
	void keyDown ();       //按键按下
}

class Button{
	//按钮监听器
	ButtonListener listener ;     //表示Buttonlistener按钮的处理程序就是 listener  
	//添加监听器
	public void addListener(ButtonListener l){
		this.listener = l ;
	}

	//模拟单击事件
	public void click(){
		//处理单击事件
		listener.click();

	}

}
//适配器
abstract class ButtonListenerAdapter implements ButtonListener{
	//对接口进行空实现
	public void dbClick(){
	}
	public void keyUp(){
	}
	public void keyDown(){
	}
}
//新建一个监听器实现类
class MyListener extends ButtonListenerAdapter{
	public void click(){
		System.out.println(" click one ~~~ !");
	}
}

class AdapterDemo{  
	public static void main(String[] args){

		Button btn = new Button();  // 新建一个监听器
		MyListener Ml = new MyListener(); //新建一个类
		btn.addListener(Ml); 
		btn.click();
		}
	}

/**
*运行结果
*   C:\Users\CC\Desktop>java AdapterDemo
*   click one ~~~ !
*/
[作业2]
阐述什么是多态。
为什么函数可以覆盖,而属性不能覆盖?
答:
定义:某一类事物的多种存在形态。
   对继承的类来讲,使用父类类型引用子类的对象。
   对于接口来说,可以使用接口引用实现了该接口的类所创建的对象。
属性是资产,容纳数据的地方,函数是行为,不容纳和存储数据,所以函数可以被覆盖,而属性不能。
时间: 2024-08-27 05:37:07

IT十八掌第六天总结(含作业)的相关文章

IT十八掌掌六天课程总结

今天学完IT十八掌第六天java基础课程: 学习内容: 1,接口与抽象类: interface ---------------------------------------------- 1,所有方法都是抽象的 2,属性有public static final修饰,这是默认的,也就是说接口属性是静态常量. 3,接口之间可以多重继承, 4,接口之间是继承关系 5,类和接口之间是实现关系. 6,面向接口编程降低耦合度 抽象类 ------------------------------------

IT十八掌第七天总结(含作业)

IT十八掌第七天总结(含作业) 回顾 -------- 对象A 子类 AA 子类AAA 可以使用 A AA AAA 分别来创建新的子类 可以使用任意一个来声明 抽象类和接口 -------------------    接口中的所有方法都是抽象的    抽象类可以没有抽象方法  共    都不能实例化  内部类编译后成员位置         用"$" 来间隔的  局部位置       用数字来间隔        匿名内部类对象 ------------------------     

IT十八掌第五天课程总结(含作业)

IT十八掌第五天总结 class  成员变量,属性 成员函数,方法. 构造函数 ------------- 和类同名. 没有返回值. javabean的规范 ------------------ 私有的属性, 公有的getter/setter. 代码块 ---------------- 1.局部代码块 在函数内部定义{}, 不能使用static修饰. 2.构造代码块 也是类的成员,和成员变量和成员函数同级. 构造对象时,先调用构造代码块,然后是构造函数. 3.静态代码块 构造代码块 + stat

IT十八掌第八天总结(含作业)

IT十八掌第八天总结 jar ---------------- jar cvf xxx.jar -C classes/ . 进程 ------------------ 进程之间内存是隔离的.内存不共享. 线程 ------------------- 程序执行过程中,并发执行的代码段. 线程之间可以共享内存. Thread : 线程类 start() //通知 Cpu ,可以执行该线程. run() //线程具体执行的代码段. Thread t= new Thread(); t.start();

IT十八掌作业_java基础第八天_多线程

感觉大家对IT十八掌大数据的支持,今天的作业如下 1. 5辆汽车过山洞,依次经过山洞.每辆车通过山洞花费10秒,使用多线程实现. 2. 用多线程模拟蜜蜂和熊的关系. 蜜蜂是生产者,熊是消费者.蜜蜂生产蜂蜜是累加的过程,熊吃蜂蜜是批量(满100吃掉)的过程. 生产者和消费者之间使用通知方式告知对方.注意不能出现死锁的现象.

IT十八掌作业_java基础第25天_NIO

感谢大家对IT十八掌大数据的支持,今天的作业如下: 1.将NIO中的Socket通信过程使用图形进行描述和说明. 2.画图说明Runtime data area的内部结构. 3.阐述class的类加载过程. 4.反射和内省的异同,以及各自的优缺点. 5.阐述jvm中从堆和非堆的角度阐述jvm的内存结构.

IT十八掌作业_java基础第26天_Java基础总结/虚拟机基础

感谢大家对IT十八掌大数据的支持,今天的作业如下: 巩固java基础知识,安装虚拟机! --------------------------------------------------------------------------------------------------------答案略,自行练习

IT十八掌作业_java基础第十七天_QQ案例

感谢大家对IT十八掌大数据的支持,今天的作业如下: 按照老师讲的,自己练习项目

IT十八掌作业_java基础第23天_数据库连接池\反射

感谢大家对IT十八掌大数据的支持,今天的作业如下: 1.属性赋值 ------------- 1.Man{50+ } Man man = new Man(); man.setXxx1(...); man.setXxx2(...); ... 50 Man copy = new Man(); copy = man ; copy.setXxx1(man.getXxx1()); copy.setXxx1(man.getXxx1()); copy.setXxx1(man.getXxx1()); copy.