面向对象的中出现的问题
public void Check(){ if(healthy>5||hungry>5||hungry<95){ isAlive=true; }if(happy<30){ healthy-=2; }else{ System.out.println("你的宠物死了"); } }
不管怎样else都走,原因是因为它是跟在第二个if后面,因为现在的happy值大于30 ,所以第二个if不走,走第一个if和else
hungry-=20;//用public修饰的父类的属性这样写 this.setHungry(this.getHungry()-20);//如果是用private修饰的就这样写
3、equal本身是比较内存地址是否相同,而重写是将它改为比较内容是否相同,
toString重写没有改变它本身的属性
4、所有的需要运行的都需要写在调试方法里面
5、.nextLine:接收信息
6、Scanner scanner=new Scanner(System.in);在执行界面输入信息,实例化
异常处理:finally:不管怎样一定会执行finally里的代码块。用于关闭资源
throws写在方法后面的,是用来修饰的,有可能会有异常
throw是写在方法里面的,是实实在在存在的异常,
Date/DateFormat(掌握)
(1)Date是日期类,可以精确到毫秒。
A:构造方法
Date()
Date(long time)
B:成员方法
getTime()
setTime(long time)
C:日期和毫秒值的相互转换
案例:你来到这个世界多少天了?
(2)DateFormat针对日期进行格式化和针对字符串进行解析的类,但是是抽象类,所以使用其子类SimpleDateFormat
A:SimpleDateFormat(String pattern) 给定模式
yyyy-MM-dd HH:mm:ss
B:日期和字符串的转换
a:Date -- String
format()
b:String -- Date
parse()
Calendar(掌握)
(1)日历类,封装了所有的日历字段值,通过统一的方法根据传入不同的日历字段可以获取值。
(2)如何得到一个日历对象呢?
Calendar rightNow = Calendar.getInstance();
本质返回的是子类对象
(3)成员方法
A:根据日历字段得到对应的值
B:根据日历字段和一个正负数确定是添加还是减去对应日历字段的值
C:设置日历对象的年月日