
面向对象基础.docx
7页本文格式为Word版,下载可任意编辑面向对象基础 一、【必做题】 Ⅰ.选择题 1、列选项中哪个是类public class Test { }的默认构造方法__C__? A. Test(); B. Test(void); C. public Test(); D. public Test(void); E. public void Test(); 2、给定以下代码的执行结果是_E___? public class A { void A() { System.out.println(“Class A”); } public static void main(String[] args) { new A(); } } A. Class A B. 在第2行处抛出奇怪 C. 编译错误 D. 在第6行处抛出奇怪 E. 代码执行后没有输出 ***3、给定以下代码 : 1. public class ConstOver { 2. public ConstOver (int x, int y, int z) { 3. } 4. } 以下选项中,哪些可以在ConsOver类中定义成重载的构造方法___AC_: A. ConstOver ( ) { } B. int ConstOver ( ) { } C. ConstOver (int z, int y, byte x) { } D. Object ConstOver (int x, int y, int z) { } E. void ConstOver (byte x, byte y, byte z) { } 4、以下代码的执行结果是__A___?//Illegal modifier for parameter i; only final is permitted A. 编译失败 B. 编译告成,输出“0” C. 编译告成,输出“1” D. 编译告成,输出“2” 5、以下代码的执行结果是__C___? A. 代码编译告成,并且打印“s=” B. 代码编译告成,并且打印“s=null” C. 代码编译失败,由于s为被初始化 D.代码编译失败,由于s不成以被引用 E. 代码编译告成,但是运行时抛出NullPointerException 6、给定以下代码: 12. void start() { 13. A a = new A(); 14. B b = new B(); 15. a.s(b); 16. b = null; 17. a = null; 18. System.out.println(“start completed”); } 对于在第14行创造的对象b,系统什么时候会对它举行垃圾回收_D___? A. 在第16行之后 B. 在第17行之后 C. 在第18行之后(当函数执行完成后) D. 无法确定 E. 垃圾回收器不会回收该对象 Ⅱ. 程序分析题 1、在指定位置上填写正确的代码: public class CircleStatic { static double pi = 3.14; int radius=100; public static void main(String[ ] args) { System.out.println( _pi_ ); //打印pi _ CircleStatic c = new CircleStatic ();_________________ ; System.out.println(__c._ radius _); //打印radius } } 2、下面的程序有错误,请修正,并说明理由: public class CircleStatic { static double pi=3.14; int radius=100; public static void main(String[] args) { System.out.println(pi); System.out.println(radius); //静态方法里不能直接用非静态属性 Circle c=new Circle(); System.out.println(c.radius); } } class Circle { static double pi=3.14; int radius; public Circle(){ } public Circle(int r) { radius=r; } public static double getPi() { return pi; } public void static showArea() { // public static void showArea() 修饰符依次不对 System.out.println(pi*radius*radius); // 静态方法里不能直接用非静态属性 /* Circle c=new Circle(); System.out.println(pi*c.radius*c.radius);*/ } } 3、分析如下程序,写出执行结果: //先静态块(只执行一次) 方法块 构造方法 public class BlockDemo{ public static void main(String[] args){ Person p=new Person(); Person q=new Person(); p.sayHello(); q.sayHello(); } } class Person{ static int eyeNum; String name; int age; double height; { //非静态块 System.out.println(\); name=\; age=18; height=1.75; } static //静态块 { System.out.println(\); eyeNum=2; } public Person(){ System.out.println(\); } public void sayHello(){ System.out.println(\+name); } } static block non-static block aaaaaaaaaaaa non-static block aaaaaaaaaaaa Hello, my name is zhangsan Hello, my name is zhangsan Ⅲ.编程题 1.(1)定义一个人类Person: 1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX” 2)有三个属性:名字、身高、体重 (2)定义一个PersonCreate类: 1)创造两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.74 2)分别调用对象的sayHello()方法。
答案:Person.java、PersonCreate.java) 2.(1)定义一个人类Person: 1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX” 2)有三个属性:名字、身高、体重 3)通过构造方法,分别给三个属性赋值 (2)定义一个Constructor类: 1)创造两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.74 2)分别调用对象的sayHello()方法答案:Constructor.java、或者是Person3.java) 3.(1)定义一个矩形类Rectangle: 1)定义三个方法:getArea()求面积、getPer()求周长,showAll()分别在操纵台输出长、宽、面积、周长 2)有2个属性:长length、宽width 3)通过构造方法Rectangle(int width, int length),分别给两个属性赋值(答案:Rectangle.java) 4. 定义一个点类Point,包含2个成员变量x、y分别表示x和y坐标,2个构造器Point()和Point(int x0,y0),以及一个movePoint(int dx,int dy)方法实现点的位置移动。
) public class Point { private int x0; private int y0; public Point() { } public Point(int x0,int y0) { 。
