Java面向对象练习题
7.下面哪些是合法的语句? a) Object o = new String("abcd"); b) Boolean b = true;
c) Panel p = new Frame(); d) Applet a = new Panel(); e) Panel p = new Applet();
8.以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果? Object o = new String("abcd"); String s = o; System.out.println(s); System.out.println(o);
Java基础面向对象习题1:
1.面向对象的软件开发有哪些优点? 使用面向对象思想进行开发有以下优点: 1、易维护 采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在 局部模块,所以维护起来是非常方便和较低成本的。 2、质量高 在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较 高的质量。 3、效率高 在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题, 接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。 4、易扩展 由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容 易扩展,而且成本较低。
6.对于以下类: class A {} class B extends A {} class C extends A {} public class Q3ae4 { public static void main(String args[]) { A x = new A(); B y = new B(); C z = new C(); // 此处插入一条语句 } } 下面哪些语句放到以上插入行,将导致运行时异常? a) x = y; b) z = x; c) y = (B) x; d) z = (C) y; e) y = (A) y;
11.以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果? abstract class Base{
abstract public void myfunc(); public void another(){
System.out.println("Another method"); } } public class Abs extends Base{ public static void main(String argv[]){
ExcepDemo e = new ExcepDemo(); } public static void amethod(){} protected ExcepDemo(){
System.out.println("Pausing"); amethod(); System.out.println("Continuing");
Abs a = new Abs(); a.amethod(); } public void myfunc(){ System.out.println("My func"); } public void amethod(){ myfunc(); } }
12.以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果? import java.io.FileNotFoundException; class Base{ public static void amethod()throws FileNotFoundException{} } public class ExcepDemo extends Base{ public static void main(String argv[]){
接口;电脑上的光盘驱动器是向光盘提供的接口。
5.抽象的最主要的特征是什么? 抽象是指从特定角度出发,从已经存在的一些事物中抽取我们所关注的特性,形成一个新
的事物的思维过程。抽象是一种由具体到抽象、由复杂到简洁的思维方式。
6.在建立对象模型时,要经历哪些抽象思维过程? (1)从问题领域的事物到软件模型中对象的抽象 (2)从对象到类的抽象 (3)从子类到父类的抽象 334157810 这群每日 java 实战技术免费分享
面向对象的软件开发具有以下优点: 把软件系统看成是各种对象的集合,这更接近人类的自然思维方式。 软件需求的变动往往是功能的变动,而功能的执行者——对象一般不会有大的变
化。这使得按照对象设计出来的系统结构比较稳定。 对象包括属性(数据)和行为(方法),对象把数据以及方法的具体实现方式一起封装起
7.类就是程序员自定义的类型,这话对吗? 对的。 对象模型中的类可看作是开发人员自定义的数据类型,Java虚拟机的运行时环境封装了把
自定义的数据类型映射到计算机的内置数据类型的过程,使得开发人员不必受到计算机的内置数 据类型的限制,对任意一种问题领域,都可以方便的根据识别对象、再进行分类(创建任意的数 据类型)的思路来建立对象模型。
来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性,从而提高 了软件的可维护性。 支持封装、抽象、继承和多态,提高了软件的可重用性、可维护性和可扩展性 2.在软件系统中,为什么说一个孤立的不对外提供任何服务的对象是没有意义的? 开发软件系统的目的,就是为了让它提供特定服务。从使用者的角度出发,整个软件系统 就是一个服务提供者。大的系统由多个子系统组合而成。在系统内部,每个子系统(对象或对象 的组合)也都是服务提供者,它们为其它子系统或者所属的大系统提供服务,各个系统之间通过 发送消息来互相获得服务。因此,一个孤立的不对外提供任何服务的系统是没有任何意义的
public void myfunc(){ System.out.println("My func");
}
public void amethod(){ myfunc();
} }
10.以下哪些代码是合法的? a) public abstract method(); b) public abstract void method(); c) public abstract void method(){} d) public virtual void method(); e) public void method() implements abstract;
Java基础面向对象习题3:
1.以下哪些是 Java 修饰符? a) public b) private c) friendly d) transient e) vagrant
2.作为程序入口的 main()方法可以用哪些修饰符来修饰? a) private b) final c) static d) int e) abstract
8.小王本来体重 70Kg,经过减肥,体重降到 45Kg,试从这个问题领域中识别对象、 类、属性、行为、状态,和状态变化。
对象:小王 类:人 属性:体重 行为:减肥 状态:减肥前状态:小王体重70Kg; 减肥后状态:小王体重45Kg 状态变化:减肥行为使得小王的体重发生了变化
9.画出UML框图中的继承(泛化)、实现和依赖的连接线。 状态转换图、时序图和协作图则构成了系统的动态结构;用例图、类框图、组件图和部署
图等四个图形,构成了系统的静态结构;
Java基础面向对象习题2:
1.继承有哪些优点和缺点?
2.继承与组合有哪些异同?
3.方法覆盖必须满足哪些规则?
4.以下哪些代码能够编译通过? a) class Fruit { } public class Orange extends Fruit { public static void main(String[] args){ Fruit f=new Fruit(); Orange o=f; } } b) class Fruit {} public class Orange extends Fruit { public static void main(String[] args){ Orange o=new Orange(); Fruit f=o; } } c) interface Fruit {} public class Apple implements Fruit { public static void main(String[] args){ Fruit f=new Fruit(); Apple a=f; } } d) interface Fruit {} public class Apple implements Fruit { public static void main(String[] args){ Apple a=new Apple(); Fruit f=a; } } e) interface Fruit {} class Apple implements Fruit {} class Orange implements Fruit {} public class MyFruit { public static void main(String[] args){ Orange o=new Orange();
9.以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果? class Base{
abstract public void myfunc(); public void another(){
System.out.println("Another method"); } }
public class Abs extends Base{ public static void main(String argv[]){ Abs a = new Abs(); a.amethod(); }
Fruit f=o; Apple a=f; } }
5.对于以下类: interface IFace{} class CFace implements IFace{} class Base{} public class ObRef extends Base{ public static void main(String argv[]){ ObRef ob = new ObRef(); Base b = new Base(); Object o1 = new Object(); IFace o2 = new CFace(); } } 下面哪些代码能够编译通过? a) o1=o2; b) b=ob; c) ob=b; d) o1=b;