课中
理论课:
- 在最底层,Java中的数据是通过使用操作符来操作的。
- 操作符的优先级就决定了各部分的计算顺序。
- System.out.orintln()语句中包含“+”操作符,“+”意味着“字符串连接”,如果有需要,它还要执行“字符串转换”。
- 整数除法会直接去掉结果的小数位,而不是四舍五入地圆整结果,Math.round()可以将数字四舍五入,round是静态方法。
- 通过Random类的对象,程序可生成许多不同类型的随机数字。
- <、>、≤、≥的优先级相等,==、!=的优先级相等。
- 逻辑操作符与、或、非能根据参数的逻辑关系,生成一个布尔值(true or false)。它们仨优先级依次是非、与、或。
- 短路:一旦能明确无误地确定整个表达式的值,就不再计算表达式余下部分了。
- 直接常量后面的后缀字符标志了它的类型。L代表long,F代表float,D代表double。十六进制数适用于所有整数数据类型。以前缀0x,后面跟随0~9或者 A到F表示。
- 按位操作符用来操作整数基本数据类型中的单个“比特”(bit),即二进位。按位操作符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。
- “有符号”右移位操作符使用“符号扩展”:若符号为正,则在高位插入0;若符号为负,则在高位插入1。Java中增加了一种“无符号”右移位操作符(>>>),它使用“零扩展”:无论正负,都会在高位插入0。
- 赋值操作是=,判断是否相等==,按位“与”和按位“或”使用单字符“&” “|”,逻辑与“&&”和逻辑或“||”。
- Java不需要sizeof()操作符来满足这方面的需要,因为所有数据类型在所有机器中的大小都是相同的。
实验课:
老师花了一节课的时间跟我们讲上一次实验课的题目。留了一节课给我们自己做基础作业5,这次作业新增加了知识点:继承,用了关键字extends。后面的一节课只做完了一个题目。可能因为第一题对我们来说稍微有一点难度,所以后面的题目我们在课后完成。
第一题主要是测试方法不太熟练:
编写一个测试程序,提示用户输入三角形的三条边、颜色以及一个Boolean值表明该三角形是否填充。程序应该使用输入创建一个具有这些边并设置color和filled属性的三角形。程序应该显示面积、边长、颜色以及表明是否填充的真或假的值。
public static void main(String[] args) {
double s1,s2,s3;
System.out.println("请输入三角形的三条边:");
Scanner cin = new Scanner(System.in);
s1 = cin.nextDouble();
s2 = cin.nextDouble();
s3 = cin.nextDouble();
Ch5Demo1 c1 = new Ch5Demo1(s1,s2,s3);
String color = "blue";
boolean isfilled = true;
cin.close();
c1.setColor(color);
c1.setFilled(isfilled);
System.out.println("三角形面积为:"+c1.getArea());
System.out.println("三角形周长为:"+c1.getPerimeter());
}
- 设计一个类Ch5Demo21(支票账户)
public class Ch5Demo21 extends Ch3Demo5{
private double overdraft;
private boolean isoverdraft = false;
public double getOverdraft() {
return overdraft;
}
public void setOverdraft(double overdraft) {
this.overdraft = overdraft;
}
public boolean isIsoverdraft(){
if(getBalance()<0){
return true;
}
return isoverdraft;
}
public void withdraw(double money){
double mybalance = getBalance()+overdraft;
if(money>=mybalance){
if(money>mybalance){
System.out.println("透支额不足!");
}else{
mybalance -= money ;
}
}else if(money <mybalance){
mybalance -=money;
}
}
}
创建Ch3Demo5、Ch5Demo21、Ch5Demo22的对象,然后调用它们的toString()方法
public static void main(String[] args) {
Ch5Demo21 c=new Ch5Demo21();
c.setBalance(1000);
c.setOverdraft(500);
c.withDraw(800);
System.out.println(c.getBalance());
c.withDraw(300);
System.out.println(c.getBalance());
System.out.println(c.isIsoverdraft());
c.withDraw(500);;
}
预习:
- 用构造器确保初始化
- 方法重载:区分重载方法、涉及基本类型的重载、以返回值区分重载方法。
- 默认构造器
- this关键字:在构造器中调用构造器、static的含义
- 清理:终结处理和垃圾回收。
总结:
这一周的学习效率跟前几周差异不大,自我感觉良好,但是没有达到我理想中学习Java的状态,再接再厉!加油。