--------------------第五章------------------------------------
P107
类可被认为是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都是引用变量,它们将会引用到类的对象??什么是引用?类定义变量是说在类里面定义成员变量还是类定义对象?
利用组合关系来实现复用时,不具备这种灵活性,为什么不具备多态性?
构造器用于对类实例进行初始化操作,构造器支持重载,构造器是什么?重载??
静态初始化块??静态初始化块用于初始化类??
修饰class的final、abstract??代表什么??
Static修饰的成员不能访问static修饰的成员??怎么理解?
P108
在定义方法的时候,public,protected,private三个最多只能出现其中之一,abstract,final最多只能出现其中一个为什么??可以与static结合起来,到底abstract,final,static有什么作用?
Static修饰的成员表明它属于这个类本身,而不属于该类的实例??
Static修饰的成员变量和方法也称为类变量、类方法,不使用static修饰的普通方法、成员变量则属于该类的单个实例,而不属于该类??怎么理解?通常把不适用static修饰的成员变量和方法也称为实例变量、实例方法。
静态成员不能直接访问非静态成员?那非静态成员可以访问静态成员吗?此处的静态成员是静态变量,还是静态方法,还是都包括??
P109
内部类、初始化块??
Static真正的作用就是你用于区别成员变量、方法、内部类、初始化块这四种成员到底属于类本身还是属于实例,属于类本身跟属于实例有什么区别?
有static修饰的成员属于类本身,没有static修饰的成员属于该类的实例,怎么理解??
定义变量,创建对象的区别?定义了一个变量不就是创建了对象吗?
P110
创建对象之后,接下即可使用该对象了,java的对象大致有如下作用。访问对象的实例变量,调用对象的方法。访问对象的实例变量是什么意思?是说可以访问类里面定义的成员变量??为什么要这么说了。。。到底变量有时候是指类定义的对象还是类里面定义的成员变量??
如果访问权限允许,类里定义的方法和成员变量都可以通过类或实例来调用。怎么理解类或实例??调用不是直接通过实例来调用吗?
P111
this关键字总是指向调用该方法的对象??根据this出现位置的不同,this作为对象的默认引用有两种情形,什么叫着默认引用??
构造器中引用该构造器正在初始化的对象??正在初始化的对象是指什么??
在方法中调用该方法的对象??怎么理解
P113
由于static修饰的方法而言,则可以使用类来直接调用该方法,如何使用类来直接调用该方法?
如果在static修饰的方法中使用this关键字,则这个关键字就无法指向合适的对象,为什么??
Static修饰的方法中不能使用this引用,所以static修饰的方法不能访问不使用static修饰的普通成员?
普通方法中可以使用this直接调用static修饰的方法吗?
P114
如果允许在static修饰的方法中出现this引用,那将导致this无法引用有效的对象??
局部变量和成员变量同名??局部变量是?成员变量是??
This的作用??作为对象的默认引用使用?
P115
Java语言是静态的,一个类定义完成后,只要不在重新编译这个类文件,该类和该类的对象所拥有的方法是固定的,永远都不会改变,动态的是什么个情况,静态的有什么好处?
P119
因此,当swap()方法中交换dw参数所引用DataWrap对象的a,b两个成员变量的值后,可以看到main()方法中dw变量所引用DataWarp对象的两个成员变量也被交换了??
P123
方法重载??就是将同一个方法重新实现??
方法局部变量和代码块局部变量区别?
P130
为了实现良好的封装,需要从两个方面考虑。将对象的成员变量和实现细节隐藏起来,不允许外部直接访问,为什么要将这些隐藏起来??成员变量又是指什么??
把方法暴露出来,让方法来控制对这些成员变量进行安全的访问和操作,为什么前面说要把成员变量隐藏起来,这儿却要让方法暴露出来??而且方法如何控制对成员变量进行安全的访问和操作??
在我看来封装就是给外界提供一个接口,然后把其他的都隐藏了??
P131
Default访问控制的成员或外部类可以被相同包下的其他类访问,包是什么??
对于外部内而言,它也可以使用访问控制符修饰,但外部类智能有两种访问控制级别,public和default,外部类是什么??因为外部类没有处于任何类的内部,也就没有其所在类的内部、所在类的子类两个范围,什么意思?
Java源文件里定义的所有类都没有使用public修饰,则这个java源文件的文件名可以是一切合法的文件名,但如果一个java源文件里定义了一个public修饰的类,则这个源文件的文件名必须与public修饰的类的类名相同。
我记得数组循环的 时候好像一个数组名a.length;;然而在字符串的时候就是a.length()…到底length应该怎么调用?
P133
为什么一些static修饰的、类似全局变量的成员变量,才可能考虑使用public修饰,为什么全局变量需要用public修饰而不用private修饰??
有些方法只用于辅助实现该类的其他方法,这些方法被称为工具方法,工具方法也应该使用private修饰??为什么?
类的构造器通过使用public修饰,从而允许在其他地方创建该类的实例??
因为外部类通常都希望被其他类自由的使用,所有大部分外部类都是用public修饰,外部类是什么??为什么外部类通常都希望被其他类自由的使用??
什么是包??
P134
如果进入lee路径下使用javahello命令来运行hello类,系统将提示错误,为什么??为什么必须要使用javalee.Hello??
P136
Import作用??
例如在文本中import的时候,比如Arrays的java.util包。。在导入的时候直接写这么一个语句就可以了吗??感觉应该在/java/util目录下有相应的类吧???
P138
接口、枚举类型放在类的定义处有什么用??
比较常用的java包有哪些??
P143
当子类覆盖了父类方法后,子类的对象将无法访问父类中被覆盖的方法,但可以在子类方法中调用父类中被覆盖的方法,为什么子类的对象将无法访问父类中被覆盖的方法??在子类的方法中可以调用父类被覆盖的方法??
如果需要在子类方法中调用父类中被覆盖的方法,可以使用super(被覆盖的是实例方法)super是什么??为何需要这样,可以使用父类类名 (被覆盖的是类的方法)??为何需要这样??
P144
方法重载和方法重写的区别??overload重载?override重写?
Super是java提供的一个关键字,super用于限定该对象调用从它父类继承得到的实例变量或方法,正如this不能出现在static修饰的方法中一样,super也不能出现在static修饰的方法中,为什么this不能出现在static修饰的方法中??static修饰的方法是属于类的,该方法的调用者可能是一个类,而不是对象,因而super限定也就失去了意义??为什么?
P148
Java引用变量有两个类型,一个是编译时类型,一个是运行时类型,分别代表什么??有什么区别?
多态性是指什么??
为很么会存在编译时类型和运行时类型不一样??
P149
为何编译时类型是父类,运行时是子类,调用.test时执行的是子类中的方法,然而.book的时候显示的是父类中的值??
P151
为什么ObjectobjPri = new Integer(5);String str = (String)objPri会出错??
Instanceof是什么??有什么作用?
Hello不是object吗?感觉String才是继承Object类的,觉得那几个都不应该对。。。
P152
继承和组合之间的区别?继承为何破坏了封装??组合为何没有破坏封装,继承跟组合各自有什么作用?类复用是什么意思??
Final修饰符的作用??
P153
如果想把某些类设置成最终类,即不能被当成父类??怎么理解??什么最终类?
何时需要从父类派生出新的子类??而不在父类中添加属性??
利用组合如何实现复用??
组合则是把旧类对象作为新类的成员变量组合进来,用以实现新类的功能,用户看到的是新类的方法,而不能看到被组合对象的方法??怎么理解??因此,通常需要在新类里使用private修饰被组合的旧类对象??为什么需要用private??
P156
构造器与初始化块的区别??初始化块是什么??有什么作用??初始化块有必要吗?
P163
Java的前八个基本类型是什么??
Java中final关键字的作用??为什么需要final?
Abstract关键字的作用?抽象类是从多个子类中抽象出来的共同特征,抽象出共同特征有什么用??抽象类作为多个类的模板,模板的作用?接口定义了多类应该遵守的规范。。接口与抽象类的区别??
Enum关键字有什么作用??
P164
Int it1= Integer.parseInt(intStr);int it2 = new Integer(intStr);//看不懂??
P171 getclass,class是什么??obj.getClass() == Person.class有什么用??反射基础是什么??
P172
Static关键字为什么不能修饰构造器?