20145230《Java程序设计》第3周学习总结

20145230 《Java程序设计》 第3周学习总结

教材学习内容总结

String s=new String();第四章我首先了解了CPU与内存的关系,栈与堆的关系。要产生对象必须先定义类,类是对象的设计图,对象是累的实例。以类名称声明的变量,就是参考名称。Java语言遵守IEEE754浮点数运算规范,使用分数与指数来表示浮点数。无论System.arraycopy()还是Arrays.copyOf(),用在类类型声明的数组时,都是执行浅层复制。所谓浅层复制,大概就是只复制指向对象的指针,而不是那个对象吧。在我们使用javac指令没有指定-encoding选项时,会使用操作系统默认编码。第五章中,了解到除了“static","this"关键字可以出现在类中任何地方,因为static方法中不能用非static数据或方法成员。有些名称冲突编译程序可通过一下顺序解析:

局部变量覆盖

选用方法中的同名变量、参数、方法名称。

成员覆盖

选用类中定义的同名数据成员、方法名称。

重载方法比较

使用import static的各个静态成员,若有同名冲突,尝试通过重载判断。

定义类代码
package cc.openhome;
class Clothes{
  String color;
  char size;
}
public class Field{
 public static void main(String[] args){
Clothes sun =new Clothes();
Clothes spring=new Clothes;
sun.color="red";
sun.size='s';
spring.color="green";
spring.size='M';
System.out.printf("sun(%s,%c)%n",sun.color,sun.size);
System.out.printf("spring (%s,%c)%n",spring.color,spring.size);
    }
}
对象指定与相等性代码
BigDecimal a=new BigDecimal("0.1");
BigDecimal b=new BigDecimal("0.1");
System.out.println(a==b);
System.out.println(a.equals(b));
数组对象代码
package cc.openhome;
public class Score{
  public static void main{String[] args){
  int[]scores={88,81,74,68,78,76,77,85,95,93};
for(int i=0;i<scores.length;i++){
   Stetem.out.printf("学生分数:%d %n",scores[i]);
                        }
               }
}
封装对象初始流程代码
package cc.openhome;
class CashCard{
 String number;
 int balance;
int bonus;
}
this代码
package cc.openhome;
ckass Other{
{
   System.out.println("对象初始区块");
}
Other(){
   System.out.println("Other()构造函数");
}

Other(int o){
  this();
   System.out.println("Other(int o)构造函数");
    }
}
public class ObjectInitialBlock{
   public static void main(String[] args){
    new Other(1);
       }
}

教材学习中的问题和解决过程

String text1="Ja"+"va";
String text2="Java";
System.out.println(text1==text2);

书中问到这样的代码是false还是true,我刚开始认为是错误,因为觉得两个字符串不能简单相加。但后买才知道最终的结果是true,因为我们的编译程序就是会认为我们要得结果就是"java",也就是说,我们确实可以将两个字符串简单相加。

Integer i1=200;
integer i2=200;
if(i1==i2){
    System.out.println("i1==i2");
}
else{
   System.out.println("i1!=i2");
}

上面这个代码的结果竟然是"i1!=i2",但我很疑惑,明明都是200,为什么i1就不等于i2呢?后面我知道,自动装箱与拆箱的功能其实是编译程序的蜜糖,它能让我们尝到甜头,但也会让我们看不清代码背后的真理。由于IntegerCache.low默认值是-128,IntegerCache.high默认值是127,所以200在这个范围之外,所以i1与i2不会参考到同一个Integer实例上,也就有了上面的效果。

代码调试中的问题和解决过程

不知道这个代码调试出错是什么意思。
886485-20160320161024037-728596564.png

其他(感悟、思考等,可选)

学了三周了,大概上了点儿Java的道路了,反正我也觉得没啥捷径可走,就是那篇博客写的:敲代码,不停敲代码,我不会自己写代码,但我会敲书上的代码,确实能让自己悟出很多东西吧!

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标2000行25篇400小时
第一周100/1002/220/20编写了HELLO JAVA程序
第二周100/2002/420/40了解了JAVA基本语法
第三周50/2501/520/60了解了对象封装问题

参考资料

转载于:https://www.cnblogs.com/kobe20145230/p/5298050.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值