java学习笔记

来源:互联网 发布:微店如何导入淘宝商品 编辑:程序博客网 时间:2024/05/22 17:59

1.
不正确的引用:

class StaticError{    String mystring=“hello”;    public static void main(String args[]) {        System.out.println(mystring);    }}

编译时错误信息: nonstatic variable mystring cannot be referenced from a static context
为什么不正确:只有对象的方法可以访问对象的变量。

解决的办法 :将变量改成类变量

class StaticError{    static String mystring=“hello”;    public static void main(String args[]){        System.out.println(mystring);    }}

2.
我们可以编写自己的类,也可以使用由系统提供的类库。下面列出了一些常用的Java包:
· java.lang包 基本语言类,程序运行时自动引入
· java.io包 所有的输入输出类
· java.util包 实用的数据类型类
· java.awt包 构建图形用户界面(GUI)的类
· java.awt.image包 处理和操纵网上图片的工具类
· java.awt.peer包 实现与平台无关的GUI的类
· java.applet包 实现Java Applet的工具类
· java.net包 实现网络功能的类

3.
域的隐藏
子类重新定义一个与从父类继承来的域变量完全相同的变量,称为域的隐藏。即子类中定义了与父类同名的域变量,就是子类变量对同名父类变量的隐藏。这里所谓隐藏是指子类拥有了两个相同名字的变量,一个来自继承父类,另一个由自己定义。在这种情况下,当子类执行继承的父类方法时,处理的是父类的变量,而当子类执行它自己定义的方法时,所操作的就是它自定义的变量,而把来自继承父类的变量“隐藏”起来了。

4.
方法的覆盖与域的隐藏的不同之处在于:子类隐藏父类的域只是使之不可见,父类的同名域在子类对象中仍然占有自己独立的内存空间;而子类方法对父类同名方法的覆盖将清除父类方法占用的内存空间,从而使父类方法在子类对象中不复存在。

5.
构造方法的继承

子类可以继承父类的构造方法,构造方法的继承遵循以下原则:
(1)子类无条件地继承父类的无参数的构造方法。
(2)如果子类没有定义构造方法,则它将继承父类的无参数构造方法作为自己的构造方法;如果子类定义了构造方法,则在创建新对象时,将先执行继承的父类无参数构造方法,然后再执行自己的构造方法。
(3)对于父类的带参数构造方法,子类可以通过在自己的构造方法中使用supper关键字来调用它,但这个调用语句必须是子类构造方法的第一个可执行语句。
下面我们主要讨论第2和第3点。

6.
研究一下接口与抽象类到底有什么区别是很有意义的。它们之间存在以下的区别:

(1)接口不能有任何实现了的方法,而抽象类可以。
(2)类可以继承(实现)许多接口,但只能继承一个父类。
(3)类有严格的层次结构,而接口没有层次结构,没有联系的类可以实现相同的接口。

7.
实现接口时应注意的问题:

(1)在类的声明部分,用implements关键字声明该类将要实现哪些接口。
(2)类在实现抽象方法时,必须用public修饰符。
(3)除抽象类以外,在类的定义部分必须为接口中所有的抽象方法定义方法体,且方法首部应该与接口中的定义完全一致。
(4)若实现某接口的类是abstract的抽象类,则它可以不实现该接口所有的方法。但是对于这个抽象类的任何一个非抽象子类,不允许存在未被实现的接口方法。即非抽象类中不能存在抽象方法。

0 0
原创粉丝点击