【Java精品源码栏目提醒】:网学会员,鉴于大家对Java精品源码十分关注,论文会员在此为大家搜集整理了“【精品】04java面向对象02 - 其它资料”一文,供大家参考学习!
Chinasoft International Chapter 04 OOP II回顾 对象由属性(数据)和方法(函数)组成; 类是具有相同属性和方法的对象的集合; 封装可以隐藏对象实现的细节部分; 对象是引用数据类型,使用new运算符创建对象实 例,使用成员运算符访问对象中的成员; 访问修饰符用来控制访问权限,可以有效地保证 数据安全; 构造方法一般用来初始化对象中的数据成员。
构造函数何时被调用? ( )A、创建对象时 B、类定义时C、使用对象的方法时 D、使用对象的属性时 下列关于构造方法的说法错误的是 A.构造方法不可重载 B.构造方法和类名同名 C.构造方法无返回类型 D.构造方法在new一个对象的时候调用 下列关于构造函数说法不正确的是 A 类的构造函数和类同名 B 一个类可以有多个构造函数 C 在实例化对象时必须调用类的构造函数 D 构造函数可以和该类其他方法一样被该类对象调用 以下关于构造函数的描述错误的是 A. 构造函数的返回类型只能是void型。
B、构造函数是类的一种特殊函数,它的方法名必须与类 名相同。
C、构造函数的主要作用是完成对类的对象的初始化工作 。
D、一般在创建新对象时,系统会自动调用构造函数。
下列关于构造方法的叙述中,错误的是_____。
A)
Java语言规定构造方法名与类名必须相同 B)
Java语言规定构造方法没有返回值,但不用void声明 C)
Java语言规定构造方法不可以重载 D)
Java语言规定构造方法只能通过new自动调用本章相关词汇(蓝色为关键字) 单 词 说 明 this 这,这个 static 静态的 package 包裹,包 import 引入,导入 overloaded 重载,超载 overloaded method 方法重载本章目标 方法重载 重载构造方法 对象在内存中的存放形式 this关键字 静态成员,static关键字 打包,package关键字 导入包,import关键字回顾函数 在
Java中,函数即方法只要直接定义即可;
Java中,函数被称为方法; 方法原型 定义一个方法的一般形式: 访问权限 返回值类型 方法名称形参列表 方法主体 我们更关注的是方法原型,对于方法原型的三个主要组成 部分应当明确区分: 返回值类型 方法名称 形式参数在
Java中定义方法 /
Java中的方法示例 代码片段/ 返回值类型 方法名称 /定义求平方值的方法/ public int squareint x 形式参数 return x x 案例/编写求绝对值的方法来求整数的绝对值/ /AbsoluteValue类,其中包含求绝对值的方法
Java中的任何方法都必须在类中定义/ 方法的定义 public class AbsoluteValue /求绝对值的方法/ public int absint x return x 0 x : -x 方法的调用 /main方法,程序入口/ public static void mainString args //必须先实例化类的对象,才可以调用到其中的成员方法 AbsoluteValue obj new AbsoluteValue int a -8 b b obj.absa //调用abs方法求a的绝对值 System.out.printlna 的绝对值是 b 案例分析 在上面的案例中,我们已经定义了求整数绝对值 的方法; 但有时候,我们可能还需要求浮点数的绝对值, 请问:可以继续使用这个方法吗? 事实上是行不通的,这个方法只能求出整数的绝 对值,对于浮点数,还需另外再定义求浮点数绝 对值的方法。
修改案例public class AbsoluteValue /求整数绝对值的方法/ 如果还要求其它类型的 public int absOfIntint x 绝对值,就需要定义更 return x 0 x : -x 多的方法,这对于调用 者来说,将会是非常麻 /求浮点数绝对值的方法/ 烦的事情。
public float absOfFloatfloat x return x 0 x : -x public static void mainString args AbsoluteValue obj new AbsoluteValue int a -8 b b obj.absOfInta System.out.printlna 的绝对值是 b float c -3.14f d d obj.absOfFloatc System.out.printlnc 的绝对值是 d 方法重载 用于定义一组方法,这些方法具有相同的名称, 并执行类似的操作,但是却使用不同的参数列表 ; 编译器会根据调用时传递的实际参数自动判断具 体调用的是哪个重载方法,如: /abs方法的重载/ int absint x …… float absfloat x …… double absdouble x …… long abslong x ……方法重载的三大原则 方法名相同 参数不同(可以有三方面的不同) 数量不同 类型不同 顺序不同 同一作用域 温馨提示:方法重载跟方法的返回值类型没有任何关系。
也就是说,只有返回值不同的方法不能构成重载。
/错误的方法重载/ void funint x …… int funint x ……方法重载示例 public class AbsoluteValue public int absint x //重载方式1,求整数的绝对值 return x 0 x : -x public float absfloat x //重载方式2,求浮点数的绝对值 return x 0 x : -x public double absdouble x //重载方式3,求双精度数的绝对值 return x 0 x : -x public long abslong x //重载方式4,求长整型数的绝对值 return x 0 x : -x public static void mainString args AbsoluteValue obj new AbsoluteValue int a -8 b b obj.absa System.out.printlna 的绝对值是 b float c -3.14f d d obj.absc System.out.printlnc 的绝对值是 d 方法重载的两种方式之一 利用不同数据类型的参数重载; 对于带有相同数量参数但参数类型不同的重载方 法,编译器可以区分它们,如: int squareint x …… float squarefloat x …… double squaredouble x …… 只要所有参数式样都是唯一的,就可以使用多个 重载; 很多编程语言已经重载了输出方法,以便您可以 用相同的函数名称输出任何类型的数据。
方法重载的两种方式之二 利用不同数量的参数重载,如: /函数定义/ int funint n1 …… int funint n1 int n2 int n3 …… /函数调用/ funa funx y z 将调用与参数最匹配的方法,如果没有方法得出 最佳匹配,那么编译器将报错; 编译器解决重载的方式与方法定义的顺序无关; 重载不考虑方法的返回值类型。
方法重载的作用域规则 只有属于同一作用域范围内的方法才能构成重载 。
class First class Second …… …… public void show public void showint x …… …… …… 不构成重载 …… 课堂练习1在
Java中,对于成员方法float addfloat f1 float f2 ……下面选项()是对该成员方法的重载。
a int addint n1 int n2 …… b float addfloat f …… c float addfloat f2 float f1 …… d void addfloat f1 float f2 …… e void addfloat f1 float f2 float x ……课堂练习2在
Java中,下列方法()不能与int funint x ……构成方法重载。
aint funint x int y …… bfloat funint x …… cint funfloat x …… dint funint x int y int z ……课堂练习3 下面关于重载描述错误的是:(选择1项) A 重载方法的返回值必须相同。
B 重载方法的参数必须有不同之处。
C 重载方法的名字必须相同,否则就不能称为重 载了。
D 重载方法的返回类型相不相同都可以。