黑马程序员技术交流社区
标题:
关于多态的问题
[打印本页]
作者:
胡卿
时间:
2012-6-11 21:57
标题:
关于多态的问题
本帖最后由 胡卿 于 2012-6-11 21:58 编辑
/*
需求:数据库的操作
1.连接数据库 JBDC Hibernate
2.操作数据库 create upate delete
3.关闭数据库连接
*/
class User
{
public void InfoOperate(UserInfoDao ui)
{
ui.add(user);
ui.delete(user);
}
}
interface UserInfoDao//Dao:data access object
{
public void add(User user);
public void delete(User user);
}
class UserInfoJBDC implements UserInfoDao
{
public void add(User user)
{
//1.连接数据库 2. 使用sql添加语句添加数据 3.关闭连接
System.out.println("JBDC add data");
}
public void delete(User user)
{
//1.连接数据库 2. 使用sql添加语句删除数据 3.关闭连接
System.out.println("JBDC delete data");
}
}
class UserInfoHibernate implements UserInfoDao
{
public void add(User user)
{
//1.Hibernate连接数据库 2. 使用sql添加语句添加数据 3.关闭连接
System.out.println("Hibernate add data");
}
public void delete(User user)
{
//1.Hibernate连接数据库 2. 使用sql添加语句删除数据 3.关闭连接
System.out.println("Hibernate delete data");
}
}
class DBoperate
{
public static void main(String[] args)
{
User u= new User();
u.InfoOperate(new UserInfoJBDC());
}
}
复制代码
DuoTai2.java:11: 找不到符号
符号: 变量 user
位置: 类 User
ui.add(user);
^
DuoTai2.java:12: 找不到符号
符号: 变量 user
位置: 类 User
ui.delete(user);
这问题怎么解决
找不到变量,但是我真的不知道该怎么把这个变量定义进去
作者:
宋浩
时间:
2012-6-11 22:09
个人觉得你那个User类里面添加或者删除一个User对象不太合适,为什么不做一个UserManger类呢??在UserManager类中保存一个User对象,那么在里面做增、删、改、查逻辑也很清晰。。如果非要这样做,那你可以ui.add(user)里面写上this不知道行不行。当然这样做也不太好的,看着都会觉得挺变扭的!!
作者:
杨天皓
时间:
2012-6-11 22:21
本帖最后由 杨天皓 于 2012-6-11 23:37 编辑
我也觉的楼主这个代码的思路有点混乱。
你的增删改查怎么能全部放在User类的一个方法里面,难道你增加了用户就马上把他删了?
首先一个javaBean存User的属性
然后一个UserOperateImpl实现UserOperate里面有增删改查并要将User传递进去,然后每一增删改查的方法里面,再调用UserInfoDaoImpl实现UserInfoDao.
你在主函数里面调用增删改查的时候,在把User传进去
作者:
葛奎
时间:
2012-6-11 23:06
/*
需求:数据库的操作
1.连接数据库 JBDC Hibernate
2.操作数据库 create upate delete
3.关闭数据库连接
*/
class User
{
public void InfoOperate(UserInfoDao ui)
{
ui.add();
ui.delete();
}
}
interface UserInfoDao//Dao:data access object
{
public void add();
public void delete();
//这里面你没有必要再给它进行传参了,因为在主函数中 User u= new User();
//已经告诉你了是user在操作数据库了,你就不用在函数中传user了,不符合逻辑
//把这两个函数定义成空参数类型,这样就可以了
//然后把下面的代码全部定义成空参
}
class UserInfoJBDC implements UserInfoDao
{
public void add()
{
//1.连接数据库 2. 使用sql添加语句添加数据 3.关闭连接
System.out.println("JBDC add data");
}
public void delete()
{
//1.连接数据库 2. 使用sql添加语句删除数据 3.关闭连接
System.out.println("JBDC delete data");
}
}
class UserInfoHibernate implements UserInfoDao
{
public void add()
{
//1.Hibernate连接数据库 2. 使用sql添加语句添加数据 3.关闭连接
System.out.println("Hibernate add data");
}
public void delete()
{
//1.Hibernate连接数据库 2. 使用sql添加语句删除数据 3.关闭连接
System.out.println("Hibernate delete data");
}
}
class Test9
{
public static void main(String[] args)
{
User u= new User();
u.InfoOperate(new UserInfoJBDC());
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2