一、小结
本章主要讲解了有关面向对象的知识和Java语言中对面向对象的实现方法,包括面向对象的程序设计、类与对象、构造方法和对象、类与程序的基本结构、参数传值、对象的组合、实例方法与类方法、this关键字、包、import语句和访问权限。通过本章学习,读者应首先认真了解面向对象的含义,并掌握Java语言中类和对象、构造方法与对象、参数传值以及包的使用,然后理解this关键字,import语句和访问权限。
二、测验
this关键字:在成员方法中使用成员变量、this关键字不能出现在类方法中(static)、当局部变量(方法中的变量)和成员变量(类中的变量)的名字相同时,成员变量(类中的变量)就会被隐藏,如果想在成员方法(函数)中使用成员变量(类中的变量)就要使用关键字this
三、习题
1、构造方法是否有类型的限制?
构造方法无类型。
2、什么是形参?什么是实参?分别举例说明。
形式上的参数是形参。例如下面的方法:
public class Point{
int add (int x, int y){
return x+y;
//x,y均为形参
}
实际传递的参数就是实参。例如下面的方法:
public class Example {
public static void main (String [] args){
Point ap = new Point ();
int a = 15;
int b = 32;
int sum = ap.add(a,b);
System.out.println(sum);//a,b为实参
3、下面的类定义有什么问题?
class Avg {
public static void main(String[] args) {
double a = 5.1;
double b = 20.32;
double c = 32.921;
System.out.println(findAvg(a, b, c));//成员方法不能直接引用,类方法才可直接引用,类方法:最前面加static
}
double findAvg(double a, double b, double c) {
return (a + b + c) / 3.0;
}
}
不能对类型Avg中的非静态方法findAvg进行引用,解决方法如下:
static double findAvg(double a, double b, double c) {
return (a + b + c) / 3.0;
}
4、有一个com.lzw.utilities.包,怎样导入这个包中名为Calculator的类?包含Calculator类的目录和子目录,其结构是什么样的?
import com.lzw.utilities.Calculator;//导入一个包中的一个类:import 包名.类名
5、下面的类定义有什么问题?
import java.util.*;
package myClass;
public class lzw{
public double avg(double a,double b){
return (a+b)/2;
}
}
正确代码如下:
package myClass;//先创建包,在导入类库中的类
import java.util.*;
public class lzw{
public double avg(double a,double b){
return (a+b)/2;
}