public Son(String name, int age) { super(name, age); }
void out() { super.out();
super.outOther();
System.out.println(\学校:\ + school); }
public static void main(String args[]) public void print() { super.print();
System.out.println(\ } }
//增加的测试代码
public class XT003302 {
public static void main(String[] args) { Child c = new Child(1,2,3,4); c.print(); {
Son son = new Son(\, 15); son.address = \金水区\; son.school = \九中\; son.tel = \; son.out();
}
}
5、下列程序的运行结果是__12345____。 public class MyClass {
int a[] = { 1, 2, 3, 4, 5 }; void out() {
for (int j = 0; j < a.length; j++) System.out.print(a[j] + \); }
public static void main(String[] args) {
MyClass my = new MyClass(); my.out(); }
}
6.运行下面的程序,输出并记录结果。 class Father{
private int f1,f2;
public Father(int f1,int f2) { this.f1=f1;this.f2=f2; }
public void print() {
System.out.println(\ } }
class Child extends Father { private int c1,c2;
public Child(int f1,int f2,int c1,int c2) { super(f1,f2);
this.c1=c1;this.c2=c2; }
} } 输出:
f1=1 f2=2 c1=3 c2=4
7.请说出A类中System.out.println的输出结果。
class B{
int x=100,y=200;
public void setX(int x){
x=x; }
public void setY(int y){
this.y=y; }
public int getXYSum(){
return x+y; } }
public class A{
public static void main(String args[]){
B b=new B(); b.setX(-100); b.setY(-200);
System.out.println(\m()); } }
sum=-100
8.请说出A类中System.out.println的输出结果。
public class A{
public static void main(String args[]){
10.请说出A类中System.out.println的输出结果。
class B{
int n;
B b=new B(20); add(b);
System.out.println(b.intValue()); }
public static void add(B m){
int t=777;
m.setIntValue(t); } }
class B {
int n; B(int n){
this.n=n; }
public void setIntValue(int n){
this.n=n; }
int intValue(){
return n; } } 777
9.请说出A类中System.out.println的输出结果。
public class A{
public static void main(String args[]){
Integer integer=new Integer(20); add(integer);
System.out.println(integer.intValue()); }
public static void add(Integer m){
int t=777;
m=new Integer(t); } } 20
static int sum=0; void setN(int n){
this.n=n; }
int getSum(){
for(int i=1;i<=n;i++)
sum=sum+i; return sum;
} }
public class A{
public static void main(String args[]){
B b1=new B(),b2=new B(); b1.setN(3); b2.setN(5);
int s1=b1.getSum(); int s2=b2.getSum();
System.out.println(s1+s2); } } 21
11.请说出E类中System.out.println的输出结果。 class A {
double f(double x,float y){
return x+y; }
double f(float x,float y){
return x*y; } }
public class E{
public static void main(String args[]){
A a=new A();
System.out.println(\,10));
System.out.println(\,10.0F)); } }
**100.0 ##20.0
12.请说出E类中System.out.println的输出结果。
class A{
double f(double x,double y){
return x+y; } }
class B extends A{//重载
double f(int x,int y){
return x*y; } }
public class E{
public static void main(String args[]){
B b=new B();
System.out.println(b.f(3,5)); System.out.println(b.f(3.0,5.0)); }
}
15.0 8.0
13.请说出E类中System.out.println的输出结果。
c1ass A{
double f(double x,double y){
return x+y; }
static int g(int n){
return n*n; } }
class B extends A{
double f(double x,double y){//重写
double m=super.f(x,y); return m+x*y; }
static int g(int n){
int m=A.g(n); return m+n; } }
public class E{
public static void main(String args[]){
B b=new B();
System.out.println(b.f(10.0,8.0));System.out.println(b.g(3)); } }
98.0 12 14.请说出E类中System.out.printf的输出结果。
interface Computer{
int computer(int x,int y); }
abstract class AA{
int computer(int x,int y){
return x-y; } }
class B extends AA implements Computer{
public int computer(int x,int y){
return x+y; } }
public class E{
public static void main(String args[]){
Computer com=new B(); AA a=new B();
System.out.printf(\,com.computer(12,10));
System.out.printf(\,a.computer(15,5)); }
22 20
四、简答题
1.如果在D:\\MyJavaFile目录下有一个文件FirstJavaProgram.Java,写出在JDK环境下,此程序的运行过程。
答:运行过程:先切换到D:\\MyJavaFile目录,然后依次执行:
(1)javac FirstJavaProgram.Java (2)java FirstJavaProgram.class
2.什么叫面向对象编程?什么是对象?什么是类?
面向对象编程(Object-Oriented 6.普通数据类型参数和引用数据类型在方法中的传递有什么不同?
普通数据类型参数的传递采用值传递,在方法中对变量的改变不会影响到主程序的同名变量,引用数据类型在方法中的传递采用地址传递,在方法中对变量的改变使主程序的同名变量发生改变。
7.什么是构造方法?构造方法有什么特点?
构造方法是一种特殊的方法,当用new命令每生成一个实例时,构造方法都会自动执行一次,而无须用户Programming ,OPP)是一套概念和想法,它与面向过程的编程方法相对应,是一种利用计算机程序来描述实际问题的思路,也是一种直观,效率更高的解决问题的方法。面向对象的程序设计方法按照现实世界的特点来管理复杂的事物,把它们抽象为对象,具有自己的状态和行为,通过对消息的反应来完成一定的任务。
对象就是变量和相关的方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为,一个对象的变量构成这个对象的核心,包围在它外面的方法使这个对象和其它对象分离开来。
类是对一组具有相同特征的对象的抽象描述,所有这些对象都是这个类的实例。在程序设计语言中,类是一种数据类型,而对象是该类型的变量,变量名即是某个具体对象的标识名。
3.类的修饰符包括哪些?各起什么作用?
包括访问控制符(表示被访问权限)、抽象类说明符abstract(说明是否是抽象类)、最终类说明符final(表示是否是最终类)。
4.什么是抽象类?什么是抽象方法?抽象方法与普通方法有什么不同?
以abstract作为关键字,如果有的话,应该放在访问控制符后面,表示这个类是个抽象类。抽象类中至少包含一个抽象方法,抽象方法是只声明了方法名和参数而没有定义方法体的特殊方法。抽象类不能直接产生实例化一个对象,它只能被继承。
5.父类与子类是怎样建立关联的?如果父类和子类中都有一个同名的方法,在程序中调用这个方法,应该用什么关键字来区分?
父类与子类是通过继承和派生建立关联的,父类可以派生出子类,可以被子类继续,子类可以继续父类的属性和方法。
如果父类和子类中都有一个同名的方法,通过关键字super和this区分,super表示调用父类的方法,而this表示调用的是子类的方法。
手工引用。
构造方法的特征:具有与类相同的名称,不含返回类型,不能在方法中用return语句返回一个值。 在类实例化时,它会由系统自动调用
8.接口与类有什么不同?与抽象方法存在什么样的关系?
接口(interface)是一种特殊的类,接口是方法定义(即抽象方法)和常量值的集合,只包含常量和方法的定义,没有变量和方法的实现。使用接口的目的是解决Java语言中不支持多重继承的缺陷。
接口中包含若干抽象方法,没有具体的方法。
9、什么是继承?
答:通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类称为父类,后定义的类称为子类,并且允许多层的继承关系。
10、请简述重载和重写的区别? 答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。