欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

黑马程序员_毕向东_Java基础****学习笔记(二十二)

程序员文章站 2022-07-07 23:14:56
...

----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流!----------------------

package day06;
/*
 * 需求:
 * 电脑运行实例:
 * 电脑运行基于主板。
 * 
 * 
 */
/*
class MainBoard{
	public void run(){
		System.out.println("mainboard run......");
	}
	public void useNetCard(NetCard nc){
		nc.open();
		nc.close();
	}
}
class NetCard{
	public void open(){
		System.out.println("netcard open.......");
	}
	public void close(){
		System.out.println("netcard close.......");
	}
}
*/
interface PCI{
	public void open();
	public void close();
}
class MainBoard{
	public void run(){
		System.out.println("mainboard run......");
	}
	public void usePCI(PCI p){
		if(p!=null){
			p.open();
			p.close();
		}
		
	}
}
class NetCard implements PCI{
	public void open(){
		System.out.println("netcard open.......");
	}
	public void close(){
		System.out.println("netcard close.......");
	}
}
class SoundCard implements PCI{
	public void open(){
		System.out.println("soundcard open.......");
	}
	public void close(){
		System.out.println("soundcard close.......");
	}
}
public class DuoTaiDemo5 {
	public static void main(String [] args){
//		MainBoard md=new MainBoard(); //这么设计程序没有扩展性
//		md.run();
//		MainBoard md=new MainBoard(); 
//		md.run();
//		md.useNetCard(new NetCard());
		MainBoard md=new MainBoard();
		md.run();
		md.usePCI(null);
		md.usePCI(new NetCard());
		md.usePCI(new SoundCard());
	}
}


package day06;
/*
 * 需求:数据库的操作
 * 数据是:用户信息
 * 
 * 1、连接数据库
 * 		JDBC Hibernate 
 * 2、操作数据库
 * 		c create r read  u  update  d delete
 * 3、关闭数据库连接
 * 
 * 
 * 
 */
interface UserInfoDao{
	public void add(User user);
	public void delete(User user);
}
class UserinfoByJDBC implements UserInfoDao{
	public void add(User user){
		//1、JDBC连接数据库
		//2、使用sql添加语句添加数据
		//2、关闭连接
	}
	public void delete(User user){
		//1、JDBC连接数据库
		//2、使用sql删除数据
		//2、关闭连接
	}
}


class UserinfoByHiberate implements UserInfoDao{
	public void add(User user){
		//1、Hibernate连接数据库
		//2、使用sql添加语句添加数据
		//2、关闭连接
	}
	public void delete(User user){
		//1、Hibernate连接数据库
		//2、使用sql删除数据
		//2、关闭连接
	}
}

class User{

}

public class DBOperate {
	public static void main(String [] args){
//		UserinfoByJDBC ui=new UserinfoByJDBC();
//		ui.add(user);
//		ui.delete(user);
//		UserInfoDao ui=new UserinfoByJDBC();
//		ui.add(user);
//		ui.delete(user);
//		
//		UserInfoDao ui1=new UserinfoByHiberate();
//		ui1.add(user);
//		ui1.delete(user);
	}
}


package day06;
/*
 * Object:是所有对象的直接或者间接父类,传说中的上帝
 * 该类中定义的肯定是所有对象都具备的功能。
 * 
 * Object类中已经提供了对对象是否相同的比较方法。
 * 如果自定义类中也有比较相同的功能,没有必要重新定义
 * 只要沿袭父类中的功能,建立自己特有的比较内容即可,这就是覆盖。
 * 
 */
class Demo{	//extends Object
	private int num;
	Demo(int num){
		this.num=num;
	}
//	public boolean compare(Demo d){
//		return this.num==d.num;
//	}
	public boolean equals(Object obj){//Object obj(d2)=new Demo();
		if(!(obj instanceof Demo)){
			return false;
		}
		Demo d=(Demo)obj;
		return this.num==d.num;
	}
}

public class ObjectDemo {
	public static void main(String [] args){
		Demo d1=new Demo(4);
		Demo d2=new Demo(6);
		System.out.println(d1.equals(d2));		
		
	}
}

----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流!----------------------