这周没上实验,因为国庆原因,玩心比较重,实践方面的知识积累的不甚多。属实是不好意思,国庆假期已经在操作了。。。
第二周是java正式进入状态的一个阶段,第一周的新鲜劲已经差不多无了,开始学习类对象方面。java是纯纯面向对象,万物皆在class里面,确实是很神奇。
面向对象的语言,更贴切人类的思维模式,我想到一个例子,比如种菜的处理模式,浇水施肥这种,可以适用于绝大多数蔬菜种类,把这些东西塞到一个方法里面,要种菜直接访问方法就行,至于菜品细微的差别,大可以改写方法。
对象内存空间的分布在栈中,给他分配一个地址,此后new的这个变量就直接与对象联系起来,具有该对象的全部方法。这里和c不太一样的是,java中没有用*去定义一个指针,class作为参数直接可以在方法中被修改,处处都是实参。对象还有很多其他的特征,不一一赘述了。
面向对象的特征:封装、继承、多态。
我对封装的理解,是把所需功能放在一个包里,自己定义一下访问的权限,便可以在其他类、其他方法中使用该包里的各种方法。大概最大的自由性就是public还是private。外部方法不能访问private的方法,但是可以防问public方法,该public方法能访问到private,说明private是类内部访问方法。其他还有什么protected包属性访问权限,能被一个包中的方法访问,具体还没有用到,有什么好处呢,现在还不是很清楚,直观看来是减少了代码的冗余度。访问权限是个很重要的部分,权限从大到小是public protected private,很神奇()
继承还没有学习,之前通过python的学习对继承有一些了解,在java这种严格限制访问权限的语言中,子类是只可以访问父类中public和protected方法的。会在补充。
作业:
1.基本数据类型、引用数据类型。
基本数据类型:byte -128~127 默认值0
short -32768~32767 默认值0
int -2^31~2^31-1 默认值0
long -2^63~2^63-1 默认值0
float -2^128~2^128-1 默认值0.0d
char 单一的Unicode字符
boolean false/true
2.java超过2^31-1或小于-2^31时溢出。例:int a=6666666666666;System.out.print(a);
解决方案:long a;
3.byte--Byte short--Short int--Integer long--Long float--Float double--Double char--Character boolean--Boolean
Double和Float没有缓存
Boolean:使用静态final,就会返回静态值
Byte:-128~127
Short:-128~127
Character:0~127
Long:-128~127
Integer:-128~127
4.装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。
例子:Integer A=999;(装箱) int a=Integer;(拆箱)
5.
int是基本数据类型,Integer是对象。
int 存储在栈中,Integer 对象的引用存储在栈空间中,对象的数据存储在堆空间中。
int 初始化值为0,Integer 初始化值为null。
int 可以直接做运算,Integer需要调用类的方法,拆箱后运算。
6.逻辑运算符:
&和&&判断符号两端表达式是否成立,有一个不成立则为假。
&左右两端都会执行判断,&&执行左侧为假后便不执行右侧语句。
位运算符:
按位与&:转化为二进制操作数中的位,出现0则结果为0。否则结果为1。
7.break语句。
for(i=1;i<3;i++)
for(j=1;i<3;i++)
for(k=1;i<3;i++) if(***) break;直接退出大循环i;