第3章 面向对象程序设计基础
【1】什么是Java程序使用的类?什么是类库?
[解答]: Java程序的基本单位是类。对象是对事物的抽象,而类是对对象的抽象和归纳,出事物的共性,把具有共同性质的事物归结为一类。累是具有相同属性和方法的一组对象的集合,类是在对象之上的抽象,对象是类的实例化 ,类定义一种对象能够拥有的数据和能完成的操作。一旦建立类后,就可用它来建立许多你需要的对象。
Java的类库是系统提供的已实现的标准类的集合,是Java编程的API,它可以帮助开发者方便、快捷的开发Java程序。
【2】如何定义方法?在面向对象程序设计中方法有什么作用?
[解答]: 方法的定义由两部分组成:方法声明和方法体。方法声明的基本格式如下:
返回类型  方法名(形式参数)
{
  …//方法体内容
}
    方法声明包括方法名、返回类型和形式参数,方法的小括号是方法的标志;方法体为实现方法行为的Java语句。
    在面向对象程序设计中,方法所起的作用是完成类和对象的属性操作。
【3】简述构造方法的功能和特点。下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。
java程序设计基础视频void Student(int no,String name)
{
studentNo=no;
studentName=name;
return no;
}
[解答]:构造方法是一个特殊的方法,主要用于初始化新创建的对象。构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,构造方法不返回任何数据类型,也不返回void数据类型,即不能在构造方法前加void。
      上面的代码出错处:(1)构造方法student前不能加void.(2)不能用return语句。
【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。编写Java程序创建student类的对象及测试其方法的功能。
[解答]:class student{
private String id; 
private String name; 
private String sex; 
private int age;   
public String getId()
{return  id;  } 
public String getName()
{ return name;  }
public String getSex()
{ return sex;  }
public int getAge()
{ return age;  }
void setAge(int age)
{ this.age = age;  }
}
 
public class TestStudent 
{ public static void main(String args[]) 
{ student stu = new student("201101010220", "许国鹏", "男",22); 
  System.out.println("student info: " + "\n学号:" +
Id()+ "\n姓名"+ Name()+"\n性别:"+Sex()+ "\n年龄:"+Age());  stu.setAge(23); 
System.out.println("修改后的年龄为:"+Age());
}
}
【5】扩充、修改程序。为第4题的student类定义构造函数初始化所有的域,增加一个方法public String printInfo()把student类对象的所有域信息组合形成一个字符串,并在主类中创建学生对象及测试各方法的功能。
[解答]:private String sex; 
private int age;         
student(String id , String name, String sex, int age)
{ this.id = id; 
this.name = name;
this.sex = sex;
this.age=age;
public String getId()
{return  id;  }
public String getName()
{ return name;  }
public String getSex()
{ return sex;  }
public int getAge() 
{ return age;  } 
void setAge(int age)
{this.age = age;  }
public String printInfo() 
{ String s= "student info: " + "\n学号:"+id+ "\n姓名"+name+"\n性别:"+sex+ "\n年龄" +age;        System.out.println(s); 
  return s;
}
}   
public class TestStudent 
{ public static void main(String args[]) 
{ student stu = new student("201101010220", "许国鹏", "男",22);
  stu.printInfo(); 
  stu.setAge(23); 
  stu.printInfo()
}
}
【6】什么是修饰符?修饰符的种类有哪些?它们各有什么作用?
[解答]:修饰符是用于限定类对象使用的权限,从而实现类中成员的信息隐藏。访问修饰符适用于类成员,而不是方法内部的局部变量。Java常见的访问修饰符有4种:private、default、protected、和public。
(1)private 只能被类本身访问,其他类无法访问。
(2)default 属于默认的访问状态,可以被类本身和同一个包中的类访问。
(3)protected 可以被类本身、它的子类(包括同一个包以及不同包中的子类)访问。
(4)public 可以被所有的类访问。
【7】什么是抽象类?为什么要引入抽象类的概念?
[解答]: 抽象类是用来描述人们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。抽象类不具备实际功能,是专门设计用来让子类继承的类,把这些具有共同特征的方法抽象出来,由子类负责这些抽象方法的实现细节,而父类仅提供此方法的名称和声明、没有方法的主体。
【8】什么是抽象方法?如何定义、使用抽象方法?
[解答]: 用abstract关键字修饰的方法称为抽象方法。抽象方法定义时,需在方法名前加上关键字abstract,抽象方法只有方法声明,没有代码实现的空方法。故必须通过其子类来重写父类中定义的每一个抽象方法。
【9】包的作用是什么?如何在程序中引入已定义的类?使用已定义的用户类、系统类有哪些主要方式?
[解答]: 包的作用是将类和接口封装在一起,方便类和接口的管理和调用。要引用包中已定义的类,必须用关键字import来导入这些类所在的包。import语句的一般形式如下:
import 包名.类名
其中类名可以用通配符“*”代替。
使用已定义的用户类、系统类主要有3种方式:直接调用、继承和创建已定义的用户类、系统类的对象。无论采用哪种方式,使用已定义的用户类、系统类的前提是用户类、系统类应该是用户程序可见的类,为此用户程序需要用import语句引入他所用到的用户类、系统类或用户类、系统类所在的包。
【10】什么是继承?如何定义继承关系?
[解答]:同类事物具体有共同性,在同类事物中,每个事物又具有其特殊性。运用抽象原则舍弃对象的特殊性,抽取其共同性,得到一个适用于一批对象的类,这便是基类(父类),派生类的对象拥有其基类的全部或部分属性与方法,称作派生类对基类的继承。
  派生类继承基类,必须使用关键字extends来声明。例如派生类B继承基类A,派生类B定义的一般形式如下:
class B extends A
{…}
【11】什么是多态,如何实现多态?
[解答]:多态指一个程序中同名的不同方法共存的情况。这些方法同名的原因是他们的最终功能和目的都相同,但是由于在完成同一功能时,可能遇到不同的具体情况,所以需要定义含不同的具体内容的方法,来代表多种具体实现形式。多态通常是一个消息在不同的类中用不同的方法实现的。
    多态的实现是由消息的接收者确定一个消息应如何解释,而不是由消息的发送者确定,消息的发送者只需要指导另外的实例可以执行一种特定操作即可。Java中提供两种多态机制:方法重载与方法重写。
【12】解释this和super的意义和作用。
[解答]: this指的是引用当前对象或类名称,当一个类的实例变量名与一个方法中参数名相同时,则参数就隐藏了实例变量名,此时可通过使用关键字this来访问它;super用来引用当前对象的父类,通过super来访问父类被子类隐藏的成员变量、成员方法以及父类的构造
方法。由于子类不继承父类的构造方法,可使用super来调用父类的构造方法,且super必须是子类构造方法的第一条语句。
【13】什么是接口?为什么要定义接口?接口和类有什么异同?
[解答]: 接口是用来调节各类之间的相互关系的一种结构,接口是抽象类的一种,只包含常量和方法的定义,而没有变量和具体方法的实现,且其方法都是抽象方法。
接口定义的格式如下;
  [public]interface 接口名 [extends 父接口名列表]{
    //接口体
}
extends字句有类声明的extends子句基本相同,不同的是一个接口可有多个父接口,用逗号隔开,而一个类只能有一个父类。Java中的类只能实现单重继承,这虽然可以简化编程,但毕竟没有完全实现面向对象的功能。定义接口的主要作用,就是帮助Java实现类间
多重继承的结构。接口有以下好处:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。