Java学习备忘录(四)方法篇(原创)
2007-02-28 19:59
513 查看
一.方法
1. 方法是一个类的对象中用来完成某个任务的一组相关的语句。它们用来完成该对象中或其他对象中的特定任务,并且使用了一种在其他语句中用到的函数和子程序的方法。
参数传递是值传递。当一个对象做为一个参数传递到方法中时,参数的值就是对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用不能改变,即参数的值是不变的。
2. this关键字用来指向当前对象或类实例,可以在任何出现对象引用的地方使用this指针。Java语言自动将实例变量,方法调用与关键字this相联系。
3. 重载方法
同一个类中或有继承关系的类中,几个具有相同行为但不同参数的方法构成重载方法。当调用时根据参数的类型和数量进行区分,选择合适的方法。
且参数表必须有明显的不同,避免由 float自动转换到double这样的语义混淆,仅返回值不同不足以区分重载方法。
4.重写方法
若子类中定义的方法,其名称,返回值类型及参数表正好与父类中方法的名称,返回值类型及参数表完全相同,则称新方法重写了旧方法。
即得到与变量的运行时类型(变量所引用的对象的类型)相关的行为,而不是与变量的编译时类型相关的行为。C++中要加关键字Virtual,Java中称为重写方法。
重写方法的规则:
(1)方法名称,返回值类型,参数的类型,个数和顺序与它重写的方法一致。
(2)重写方法不能比被重写方法的访问性差。(public, private, protected)
(3 ) 重写方法不能比被重写方法抛出更多异常。
二.构造函数
方法名称必须与类名称完全相同,且不含返回值。
用new创建一个对象,进行以下操作:
1)为对象分配存储空间
2)初始化对象实例,要么赋初值,要么用默认值(数字为0,对象为null,布尔型用false,字符用’/0’)
3) 调用该类的构造函数。
一个类可以有多个构造函数,由new语句中的参数决定调用哪一个。一个类至少有一个构造函数,若没有则Java自动提供一个默认构造函数,但是没参数表,函数体为空,可用new Xxx()方式调用。当自己定义了一个带参数的构造函数后,默认构造函数失去,用new Xxx()方式会出错。有多个构造函数时,可调用其中一个实现另一个。
Java中执行子类构造函数前要求先调用父类构造函数版本。可通过在子类构造函数第一行用super()的方式调用一个特定的父类构造函数作为子类构造函数的一部分。用不同的参数决定具体调用哪一个。用super()调用时,调用父类默认构造函数,若父类无默认构造函数,则出错。
同理,super和this一样必须放在构造函数的第一行,但是不能放在同一个单独行。
1. 方法是一个类的对象中用来完成某个任务的一组相关的语句。它们用来完成该对象中或其他对象中的特定任务,并且使用了一种在其他语句中用到的函数和子程序的方法。
参数传递是值传递。当一个对象做为一个参数传递到方法中时,参数的值就是对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用不能改变,即参数的值是不变的。
2. this关键字用来指向当前对象或类实例,可以在任何出现对象引用的地方使用this指针。Java语言自动将实例变量,方法调用与关键字this相联系。
3. 重载方法
同一个类中或有继承关系的类中,几个具有相同行为但不同参数的方法构成重载方法。当调用时根据参数的类型和数量进行区分,选择合适的方法。
且参数表必须有明显的不同,避免由 float自动转换到double这样的语义混淆,仅返回值不同不足以区分重载方法。
4.重写方法
若子类中定义的方法,其名称,返回值类型及参数表正好与父类中方法的名称,返回值类型及参数表完全相同,则称新方法重写了旧方法。
即得到与变量的运行时类型(变量所引用的对象的类型)相关的行为,而不是与变量的编译时类型相关的行为。C++中要加关键字Virtual,Java中称为重写方法。
重写方法的规则:
(1)方法名称,返回值类型,参数的类型,个数和顺序与它重写的方法一致。
(2)重写方法不能比被重写方法的访问性差。(public, private, protected)
(3 ) 重写方法不能比被重写方法抛出更多异常。
二.构造函数
方法名称必须与类名称完全相同,且不含返回值。
用new创建一个对象,进行以下操作:
1)为对象分配存储空间
2)初始化对象实例,要么赋初值,要么用默认值(数字为0,对象为null,布尔型用false,字符用’/0’)
3) 调用该类的构造函数。
一个类可以有多个构造函数,由new语句中的参数决定调用哪一个。一个类至少有一个构造函数,若没有则Java自动提供一个默认构造函数,但是没参数表,函数体为空,可用new Xxx()方式调用。当自己定义了一个带参数的构造函数后,默认构造函数失去,用new Xxx()方式会出错。有多个构造函数时,可调用其中一个实现另一个。
Java中执行子类构造函数前要求先调用父类构造函数版本。可通过在子类构造函数第一行用super()的方式调用一个特定的父类构造函数作为子类构造函数的一部分。用不同的参数决定具体调用哪一个。用super()调用时,调用父类默认构造函数,若父类无默认构造函数,则出错。
同理,super和this一样必须放在构造函数的第一行,但是不能放在同一个单独行。
相关文章推荐
- Java学习备忘录(二)基础语法和数组(原创)
- Java学习备忘录(一)安装篇(原创)
- Java学习备忘录(五)高级语言特性篇(原创)
- Java学习备忘录(三)类篇(原创)
- Java学习个人备忘录之构造函数&this
- java学习日记_27:面向对象之main方法格式详细解释
- Ndk学习之JNI方法和静态方法(java-->C)
- Java并发19:Lock系列-Lock接口基本方法学习实例
- Java Web 初级程序员 -第6天学习内容:类方法
- Java中关于Arrays.asList方法的深入学习与理解
- 黑马程序员——Java学习笔记--方法的重载(Overload)与重写(Override)
- [ Java学习 ] toString方法 和 equals方法
- 学习java的方法!
- Java基础学习之(二)—对象与类的方法参数
- 8.java学习 20131212 String类的基本方法
- 从几个sample来学习Java堆,方法区,Java栈和本地方法栈
- 【java基础知识(学习笔记)】--方法的重载注意事项
- Java常用集合类的常用方法 学习笔记
- Java学习笔记1:考虑用静态工厂方法代替构造器
- Java学习笔记----构造方法