打算用csdn来记录一些学习历程,还是第一次写博客
目前学的是java,看的书是java核心技术
第一天,进度 page103-144
回顾一下遇到的问题:
Employee[] staff = new Employee[3];
staff[0] = new Employee("...",...,...);
为什么第一行里staff已经是Employee对象,为什么第二行还需要new Employee对象?
第二行的new Employee并不是针对于staff数组,而是定义一个Employee对象,然后将这个对象赋给staff数组
对于静态方法的理解
静态方法的参数没有使用到任何该类里的对象,因此也不能访问该类里的任何对象,但可以访问静态字段
Java中的方法传参只有按值传参
所以如果要通过方法对实参造成实质性的改变只能传递数组(因为传递数组是传递首地址,类似c++),或传递对象,通过对象里的方法对成员进行改变(里面涉及到了对象的存储位置和引用位置,堆栈之类的,目前不是很了解,等以后了解了再补全)
package com.horstmann.corejava;
为什么明明类要增加到包中时引入的是自己的地址,而编译包的时候却能直接编译了那个类
个人理解是因为包的开头引用了那个类的位置
import com.horstmann.corejava.*;
关于对象里实例字段的引用
用private标记的实例字段只能用该类里的方法进行访问,没用private标记的实例字段可以用类似c语言结构体的.(点)进行访问,比如
class num{
int a;
private int b;
}
num x = new num;
int cnt = x.a; //ok
int cnt = x.b; //error
目前就学到这了,该继续学了