java学习笔记
2016-07-12 17:02
337 查看
1.
不正确的引用:
编译时错误信息: nonstatic variable mystring cannot be referenced from a static context
为什么不正确:只有对象的方法可以访问对象的变量。
解决的办法 :将变量改成类变量
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的抽象类,则它可以不实现该接口所有的方法。但是对于这个抽象类的任何一个非抽象子类,不允许存在未被实现的接口方法。即非抽象类中不能存在抽象方法。
不正确的引用:
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的抽象类,则它可以不实现该接口所有的方法。但是对于这个抽象类的任何一个非抽象子类,不允许存在未被实现的接口方法。即非抽象类中不能存在抽象方法。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树