精华内容
下载资源
问答
  • java
  • 学习资料收集于网络仅供参考 使用Java 实现面向对象编程阶段测试 -笔试试卷 一选择题 (共 25 题每题 4 分满分 100 分 ) 1) 在 Java 类中使用以下 声明语句来定义公有的 int 型常量 MAX A. public int MAX = 100; B. ...
  • . Word 资料 OOP考试题 考试时间120分钟 考试总分100分 选择题(不定项选择(2分/题*37 = 74分) 类AB的定义如下 class A { private int a = 100; A) { System.out.print"A; System.out.println(a;...
  • Java面向对象试题.pdf

    2021-08-28 20:17:42
    Java面向对象试题
  • Java面向对象试题

    万次阅读 多人点赞 2019-03-19 15:58:05
    1、 请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。...在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方 法、fly()方法。 评分标准: 正确写出Ani...

    目录

    一、第一题

    请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。 创建一个接口A,接口里有一个抽象方法fly()。创建一个Bird类继承Animal类并实现 接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿 吃虫”。在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方 法、fly()方法。

    评分标准:
    正确写出Animal类10分
    正确定义接口A 10分
    Bird类继承Animal类实现接口A 10分
    向上转型创建对象b调用eat()方法正确输出 10分
    向下转型调用eat()方法、fly()方法正确输出 10分。
    

    答案:

    Animal.java
    image.png
    A.java
    image.png
    Bird.java
    image.png
    Bird.java
    image.png


    二、第二题

    编写一个Person抽象类,要求含有姓名(name)年龄(age)两个私有属性以及吃饭(eat) 和睡觉(sleep)两个抽象方法,并写出带参构造方法,创建学生(student)和工人(worker) 两个类,继承Person类,学生类多出了私有属性学号和学习方法(输出我爱学习),工 人类多出了私有属性工号和工作方法(输出我爱工作),在主函数中创建学生和工人类 的实例对象,使用构造方法赋值,并输出所有属性和方法(共50分,能够定义类5分, 正确书写子父类构造方法1分,set get写对10分,方法重写10分,正确创建对象10 分,能运行5分)

    显示结果如下:
    姓名:李四,年龄:18,学号:1024
    食堂吃饭
    我爱学习
    姓名:张三,年龄:20,工号:1025
    自己做饭
    在家躺着睡觉
    我爱工作

    Person.java
    image.png
    Student.java
    image.png
    image.png
    Worker.java
    image.png
    Mains.java
    image.png

    三、第三题

    利用继承,来描述,人,老师,学生之间的关系
    1)老师含有属性:name,age,subject,含有方法:eat,teach,toString
    2)学生含有属性:name,age,class,含有方法:eat,study,toString
    3)利用继承的思想,从老师和学生中抽象出人,并创建Test进行调用并输出(System.out)

    判分标准:
    1)创建类Person,含有公有属性:name姓名,age年龄。含有方法void eat(String something);方法中打印输出“我爱吃XXX”。含有构造方法,带两个参数,分别是name和age,并利用this关键字传值到成员变量中 	。(10分)
    2)创建类Student,含有属性:class班级,含有方法,void study(String subject);方法打印输出:我热爱学习subject。创建包含三个参数的构造方法,分别是name,age,class,利用super实现父类构造方法传值。重写toString方法,打印输出:我的名字是XX,我的年龄是XX,我的班级是XX(10分)
    3)创建类Teacher,含有属性:subject,含有方法,void teach();方法打印输出:我教授的是subject。创建包含三个参数的构造方法,分别是name,age,subject,利用super实现父类构造方法传值。重写toString方法,打印输出:我的名字是XX,我的年龄是XX(10分)
    4)创建Test测试类,创建Student对象,并调用带3个参数的构造方法,自己赋值,然后依次调用study方法,eat方法,toString方法(20分)
    5)创建Teacher对象,并调用带3个参数的构造方法,自己赋值,然后依次调用teach方法,eat方法,toString方法(10分)
    

    Person.java
    image.png
    image.png
    Student.java

    image.png
    Teacher.java

    image.png
    Test.java
    image.png

    四、第四题

    需求:首先定义一个抽象类Animal,抽象类中定义一个抽象方法play()抽象方法,创建 一个猫Cat类,继承Animal并重写play方法输出“我是猫,我玩老鼠”,创建一个狗类, 继承Animal并重写play方法输出“我是狗,我玩球”。最后编写测试类TestDemo,通 过多态创建猫,通过多态创建狗,并调用猫对象的play方,狗对象的play方法

    效果如图:
    	我是猫,我玩老鼠		
    	我是狗,我玩球
    评分标准
    1)创建Animal抽象类,并定义抽象方法play.(10)
    2)创建Dog类继承Animal类,重写play方法。(10)
    3)创建Cat类继承Animal类,重写play方法。(10)
    4)编写测试类,通过多态创建猫对象,狗对象(15)
    

    Animal.java
    image.png
    Cat.java
    image.png
    Dog.java
    image.png
    Test.java
    image.png

    五、第五题

    请创建一个Car抽象类,要求有brand(品牌)属性,并且要求封装私有化,写出属性的 set、get方法。抽象类Car构造方法中也可以对brand属性赋值,写出一个抽象方法run ()。创建一个跑车类SportsCar继承抽象类Car。实现Car抽象方法输出一条语句“超 级跑车”,在本类中写出一个自己的方法price(),输出一条语句“售价100w”。在测 试类Test类中创建跑车对象car1,用构造器赋值品牌属性,输出属性,调用run()、 price()方法。创建跑车car2,用set方法赋值属性,输出属性,调用run()、price ()方法。

    评分标准:
    1)正确写出抽象类Car ,封装属性,写出抽象方法10分
    2)封装属性,写出set、get、抽象方法 10分
    3)正确继承Car类写出SportsCar类和并实现run() 方法。10分
    4)创建car1、car2对象并调用方法10分
    5)成功正确输出 10分
    显示结果如下:
    	法拉利
    	超级跑车
    	售价100w
    	兰博基尼
    	超级跑车
    	售价100w
    

    Car.java
    image.png
    SportsCar.java
    image.png
    Test.java
    image.png

    六、第六题

    完成那个USB接口的例子,分别定义USB接口,两个方法start,stop。两个子类:Flash和Print,重写两个方法,方法中随便输出两句话。定义计算机类Computer,有一个plugin方法,有一个USB类型的参数,用来调用start和stop。在主方法中实例化Computer类,调用plugin方法,分别传递Flash和Print的对象,通过向上转型,完成功能。

    注意:因为从键盘输入我们还没有学习,所以上面若提到使用键盘输入,改为在程序中随意定义几个值(如果会键盘输入那就使用键盘输入)

    USB.java
    image.png
    Print.java
    image.png
    Flash.java
    image.png
    Computer.java
    image.png
    Mains.java
    image.png

    七、第七题

    (1)请创建一个Car抽象类,要求有brand(品牌)属性,并且要求封装私有化,写出属性的 set、get方法。抽象类Car构造方法中对brand属性赋值,写出一个抽象方法run()。(2)创建一个跑车类SportsCar继承抽象类Car。实现Car抽象方法输出一条语句“超级跑车”,在本类中写出一个自己的方法price(),输出一条语句“售价100w”。(10分)
    (3)定义测试类Test类,并创建跑车对象car1,用构造器赋值品牌属性,使用setter方法输出属性值,再调用run()、 price()方法。 (10分)
    (4)创建跑车car2,向上转型到Car,使用setter方法为brand赋值属性
    ,输出属性值,调用run()方法。(10分)

    Car.java

    package kaoshi_1;
    
    public abstract class Car {
    	private String brand;
    
    	public String getBrand() {
    		return brand;
    	}
    
    	public void setBrand(String brand) {
    		this.brand = brand;
    	}
    	
    	public Car(String brand) {
    		this.brand=brand;
    	}
    	
    	public Car() {
    		
    	}
    	public abstract void run();
    }
    
    

    SportCar.java

    package kaoshi_1;
    
    public class SportCar extends Car {
    
    	public void run() {
    		System.out.println("超级跑车");
    	}
    	public SportCar(String brand) {
    		super(brand);
    	}
    	public void price() {
    		System.out.println("售价100w");
    	}
    	public SportCar() {
    		
    	}
    }
    
    

    Test.java

    package kaoshi_1;
    
    public class Test {
    	public static void main(String[] args) {
    		SportCar car1 = new SportCar("奥迪A6");
    		System.out.println(car1.getBrand());
    		car1.run();
    		car1.price();
    		
    		Car car2 = new SportCar();
    		car2.setBrand("玛莎拉蒂");
    		System.out.println(car2.getBrand());
    		car2.run();
    	}
    }
    
    

    image.png

    八、第八题

    (1)定义一个Flower花作为父类
    属性:颜色 价格
    属性要进行封装(即为每条私有属性写set,get方法)
    定义无参构造方法,和传两个参数的有参构造方法一个。
    方法:显示详细信息的方法showInfo (15分)
    (2)定义一个Rose玫瑰花类继承Flower类
    玫瑰花自己的属性:产地(要求对产地属性进行封装 私有化属性)
    重写父类中的显示详细信息的方法showInfo,在重写的showInfo方法中通过super调用父类的showInfo方法;并显示产地信息。
    再定义一个方法warn警告显示:不要摘玫瑰花,小心扎手! (15分)
    (3)定义测试类Test完成:(10分)
    ①实例化Flower类,调用构造方法赋值,并调用方法,输出:
    花的颜色是白色,价格是10元
    ②实例化玫瑰花类,调用方法,输出:
    花的颜色是紫色,价格是30元
    产地是大理
    不要摘玫瑰花,小心扎手!

    Flower.java

    package kaoshi_1;
    
    public class Flower {
    	private String color;
    	private String price;
    	public String getColor() {
    		return color;
    	}
    	public void setColor(String color) {
    		this.color = color;
    	}
    	public String getPrice() {
    		return price;
    	}
    	public void setPrice(String price) {
    		this.price = price;
    	}
    	public Flower() {
    		
    	}
    	public Flower(String color,String price) {
    		this.color=color;
    		this.price=price;
    	}
    	public void showInfo() {
    		System.out.println("花的颜色是"+this.color+",价格是"+this.price+"元");
    	}
    }
    
    

    Rose.java

    package kaoshi_1;
    
    public class Rose extends Flower {
    	private String address;
    	
    	public String getAddress() {
    		return address;
    	}
    	public void setAddress(String address) {
    		this.address = address;
    	}
    	public void showInfo() {
    		super.showInfo();
    		System.out.println("产地是"+this.address);
    	}
    	public void warn() {
    		System.out.println("不要摘玫瑰花,小心扎手!");
    	}
    	public Rose() {
    		
    	}
    	public Rose(String color,String price,String address) {
    		super(color,price);
    		this.address=address;
    	}
    }
    
    

    Test2.java

    package kaoshi_1;
    
    public class Test2 {
    	public static void main(String[] args) {
    		Flower f=new Flower("白色","10");
    		f.showInfo();
    		
    		Rose r=new Rose("紫色","30","大理");
    		r.showInfo();
    		r.warn();
    	}
    }
    
    

    image.png

    九、第九题

    (1)首先定义一个程序员的接口Programmer,接口中定义一个抽象方法ACode(); (10分)
    (2)创建一个Student类,实现接口Programmer并实现ACode()方法,ACode()方法可输出输出“程序员在敲代码”, Student类有年龄,姓名,班级,性别私有属性(封装),各个属性的set,get方法,写空参构造方法,和一个有参构造方法包含这四个属性。 (10分)
    (3)定义测试类,在main方法中创建一个Student对象,将自己的年龄,姓名,班级,性别,赋值给这个对象,并在控制台打印出对象的各个属性。调用所有的方法。(10分)

    效果如图:

    程序员在敲代码
      姓名:孙悟空  性别:女  年龄:19  班级:三年级二班 
    

    Programmer.java

    package kaoshi_1;
    
    public interface Programmer {
    	public abstract void ACode();
    }
    
    

    Student.java

    package kaoshi_1;
    
    public class Student implements Programmer {
    	private int age;
    	private String name;
    	private String clas;
    	private String sex;
    	public void ACode() {
    		System.out.println("程序员在敲代码");
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getClas() {
    		return clas;
    	}
    	public void setClas(String clas) {
    		this.clas = clas;
    	}
    	public String getSex() {
    		return sex;
    	}
    	public void setSex(String sex) {
    		this.sex = sex;
    	}
    	public Student() {
    		
    	}
    	public Student(int age,String name,String clas,String sex) {
    		this.age=age;
    		this.name=name;
    		this.clas=clas;
    		this.sex=sex;
    	}
    }
    
    

    Test3.java

    package kaoshi_1;
    
    public class Test3 {
    
    	public static void main(String[] args) {
    		Student s=new Student(19,"孙悟空","三年级二班","女");
    		s.ACode();
    		System.out.println("姓名:"+s.getName()+",性别"+s.getSex()+",年龄:"+s.getAge()+",班级:"+s.getClas());
    	}
    }
    

    image.png

    展开全文
  • java面向对象试题

    2011-06-17 23:15:22
    java面向对象试题 java面向对象试题 java面向对象试题 java面向对象试题
  • java面向对象试题.pdf

    2021-09-30 17:43:12
    java面向对象试题.pdf
  • java面向对象试题.doc

    2021-09-29 19:25:38
    java面向对象试题.doc
  • Java面向对象试题集.pdf
  • java面向对象试题[归类].pdf
  • Java面向对象试题集[归纳].pdf
  • Java面向对象试题分析[借鉴].pdf
  • 使用 Java 实现面向对象编程阶段测试-笔试试卷 一选择题(共 25 题每题 4 分满分 100 分) 在 Java 类中使用以下 声明语句来定义公有的 int 型常量 MAX A. public int MAX = 100; final int MAX = 100; public static ...
  • java面向对象常考二十题(附答案)

    千次阅读 2020-07-28 17:52:16
    This():当前类的对象,super父类对象。 Super():在子类访问父类的成员和行为,必须受类继承规则的约束 而this他代表当前对象,当然所有的资源都可以访问. 在构造函数中,如果第一行没有写super(),编译器会自动插入...

    1.super()与this()的区别?
    This():当前类的对象,super父类对象。
    Super():在子类访问父类的成员和行为,必须受类继承规则的约束
    而this他代表当前对象,当然所有的资源都可以访问.
    在构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个函数被私有化了(用private修饰).此时你必须加入对父类的实例化构造.而this就没有这个要求,因为它本身就进行实例化的构造.
    而在方法中super和this使用的方法就差不多了.只不过super 要考虑是否能访问其父类的资源.

    2.作用域public,protected,private,以及不写时的区别?
    Public:不同包、同一包、类内都可用
    Private:类内
    Protected: 不同包的子类、同一包、类内都可用
    不写时:同一包内、类内
    3.编程输出如下图形。




    代码如下:
    public class Print {
    public static void main(String[] args) {
    for (int i = 0; i < 5; i++) {
    for (int j = 5; j > i; j–) {
    System.out.print("*");
    }
    System.out.println();
    }
    }
    }
    4.JAVA的事件委托机制和垃圾回收机制
    java 事件委托机制的概念,一个源产生一个事件并将它送到一个或多个监听器那里。在这种方案中,监听器简单的等待,直到它收到一个事件。一旦事件被接受,监听器将处理这个事件,然后返回。
    垃圾回收机制 垃圾收集是将分配给对象但不再使用的内存回收或释放的过程。如果一个对象没有指向它的引用或者其赋值为null,则次对象适合进行垃圾回收

    5.在JAVA中,如何跳出当前的多重嵌套循环?
    用break; return 方法。
    6.什么是java序列化,如何实现java序列化?(写一个实例)
    序列化:
    可以将一个对象保存到一个文件,所以可以通过流的方式在网络上传输,可以将文件的内容读取,转化为一个对象。

    处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
    序列化的实现:
    将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
    7.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
    可以。如果这个类的修饰符是public,其类名与文件名必须相同。
    8.排序都有哪几种方法?请列举。用JAVA实现一个快速排序?
    排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)
    快速排序的伪代码。
    9.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
    方法的
    重写Override,子类覆盖父类的方法,将子类传与父类的引用调用的还是子类的方法。
    重载Overloading 一个类多个方法,名称相同,参数个数类型不同。
    两者都是Java多态性的不同表现。
    Overloaded的方法是可以改变返回值的类型。
    1, public class Ctest()
    {
    Public static void main()
    {
    System.out.prinln(8+8+”88”+8+8);
    }
    }

    168888
    10.Final类有什么特点?
    属性常量
    方法不可以overridding
    类不可以继承
    11.继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
    答:父类:
    package test;
    public class FatherClass
    {
    public FatherClass()
    {
    System.out.println(“FatherClass Create”);
    }
    }
    子类:
    package test;
    import test.FatherClass;
    public class ChildClass extends FatherClass
    {
    public ChildClass()
    {
    System.out.println(“ChildClass Create”);
    }
    public static void main(String[] args)
    {
    FatherClass fc = new FatherClass();
    ChildClass cc = new ChildClass();
    }
    }
    输出结果:
    C:>java test.ChildClass
    FatherClass Create
    FatherClass Create
    ChildClass Create
    12.内部类的实现方式?
    答:示例代码如下:
    package test;
    public class OuterClass
    {
    private class InterClass
    {
    Public Interlass()
    {
    System.out.println(“InterClass Create”);
    }
    }
    public OuterClass()
    {
    InterClass ic = new InterClass();
    System.out.println(“OuterClass Create”);
    }
    public static void main(String[] args)
    {
    OuterClass oc = new OuterClass();
    }
    }
    输出结果:
    C:>java test/OuterClass
    InterClass Create
    OuterClass Create
    13.用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?
    14. 如在COLLECTION框架中,实现比较要实现什么样的接口?
    15.用插入法进行排序代码如下
    package test;
    import java.util.*;
    class InsertSort
    {
    ArrayList al;
    public InsertSort(int num,int mod)
    {
    al = new ArrayList(num);
    Random rand = new Random();
    System.out.println(“The ArrayList Sort Before:”);
    for (int i=0;i<num ;i++ )
    {
    al.add(new Integer(Math.abs(rand.nextInt()) % mod + 1));
    System.out.println(“al[”+i+"]="+al.get(i));
    }
    }
    public void SortIt()
    {
    Integer tempInt;
    int MaxSize=1;
    for(int i=1;i<al.size();i++)
    {
    tempInt = (Integer)al.remove(i);
    if(tempInt.intValue()>=((Integer)al.get(MaxSize-1)).intValue())
    {
    al.add(MaxSize,tempInt);
    MaxSize++;
    System.out.println(al.toString());
    } else {
    for (int j=0;j<MaxSize ;j++ )
    {
    if

    (((Integer)al.get(j)).intValue()>=tempInt.intValue())
    {
    al.add(j,tempInt);
    MaxSize++;
    System.out.println(al.toString());
    break;
    }
    }
    }
    }
    System.out.println(“The ArrayList Sort After:”);
    for(int i=0;i<al.size();i++)
    {
    System.out.println(“al[”+i+"]="+al.get(i));
    }
    }
    public static void main(String[] args)
    {
    InsertSort is = new InsertSort(10,100);
    is.SortIt();
    }
    }

    JAVA类实现序例化的方法是实现java.io.Serializable接口
    Collection框架中实现比较要实现Comparable 接口和 Comparator 接口
    16.编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。
    答:代码如下:
    public static void split(String source,int num) throws Exception
    {
    int k=0;
    String temp="";
    for (int i = 0; i <source.length(); i++)
    {
    byte[] b=(source.charAt(i)+"").getBytes();
    k=k+b.length;
    if(k>num)
    {
    break;
    }
    temp=temp+source.charAt(i);
    }
    System.out.println(temp);
    }
    15、Java编程,打印昨天的当前时刻
    public class YesterdayCurrent{
    public void main(String[] args){
    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.DATE, -1);
    System.out.println(cal.getTime());
    }
    }
    16、文件读写,实现一个计数器
    public int getNum(){
    int i = -1;
    try{
    String stri="";
    BufferedReader in = new BufferedReader(new FileReader(f));
    while((stri=in.readLine())!=null){
    i = Integer.parseInt(stri.trim());
    }
    in.close();
    }catch(Exception e){
    e.printStackTrace();
    }
    return i;
    }
    public void setNum(){
    int i = getNum();
    i++;
    try{
    PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(f,false)));
    out.write(String.valueOf(i)); //可能是编码的原因,如果直接写入int的话,将出现java编码和windows编码的混乱,因此此处写入的是String
    out.close() ;
    }catch(Exception e){
    e.printStackTrace();
    }
    }
    17、指出下面程序的运行结果。
    class A{
    static{
    System.out.print(“1”);
    }
    public A(){
    System.out.print(“2”);
    }
    }
    class B extends A{
    static{
    System.out.print(“a”);
    }
    public B(){
    System.out.print(“b”);
    }
    }
    public class Hello{
    public static void main(String[] ars){
    A ab = new B(); //执行到此处,结果: 1a2b
    ab = new B(); //执行到此处,结果: 1a2b2b
    }
    }
      注:类的static 代码段,可以看作是类首次加载(被虚拟机加载)执行的代码,而对于类的加载,首先要执行其基类的构造,再执行其本身的构造
    18、抽象类和接口的区别?
    (1)接口可以被多重implements,抽象类只能被单一extends
    (2)接口只有定义,抽象类可以有定义和实现
    (3)接口的字段定义默认为:public static final, 抽象类字段默认是"friendly"(本包可见)
    当功能需要累积时用抽象类,不需要累积时用接口。
    19、什么是类的返射机制?
    通过类(Class对象),可以得出当前类的fields、method、construtor、interface、superClass、modified等,同是可以通过类实例化一个实例、设置属性、唤醒方法。Spring中一切都是返射、struts、hibernate都是通过类的返射进行开发的。
    20、类的返射机制中的包及核心类?
     java.lang.Class
     java.lang.refrection.Method
     java.lang.refrection.Field
     java.lang.refrection.Constructor
     java.lang.refrection.Modifier
     java.lang.refrection.Interface

    展开全文
  • Java面向对象试题-IT公司
  • java基础习题,面向对象习题。适合初学java者使用
  • 使用 Java 实现面向对象编程阶段测试 -笔试试卷 一选择题 ( 共 25 题每题 4 分满分 100 分 ) 1) 在 Java 类中使用以下 声明语句来定义公有的 int 型常量 MAX public int MAX = 100; final int MAX = 100; public ...
  • java面向对象试题及答案

    千次阅读 2014-02-06 13:48:31
    2.简述Java中参数传递规则 值传递:传的是值(实参,形参的值相同) 引用传递:传的是地址 (实参,形参共同指向同一对象) 3.简述实例变量与局部变量的区别? 位置上: 实例变量:定义在类以内,方法以外 局部...
    1.简述this的两种用法 
    
    1. 调用本类其他的构造方法  必须出现在构造方法的第一行
    2. this. 当前对象  区分实例变量和局部变量
    2.简述Java中参数传递规则
    值传递:传的是值(实参,形参的值相同)
    引用传递:传的是地址 (实参,形参共同指向同一对象)
    3.简述实例变量与局部变量的区别?
    位置上:
    实例变量:定义在类以内,方法以外
    局部变量:定义在代码块中
    语法上:
    实例变量:可以不赋初始值,有默认值【0,false,....】
    局部变量:必须先赋值在使用
    作用范围:
    实例变量:至少在本类中有效
    局部变量:从定义开始
    展开全文
  • Thinking in Java 3th Edition(中文版) 下载地址: http://pan.baidu.com/share/link?shareid=4488&uk=1560653735 Thinking in Java 3th Edition 下载地址: ...
  • Java面向对象编程练习题答案

    热门讨论 2014-03-26 09:30:49
    关于Java面向对象的编程练习题以及答案解析。
  • Java面向对象测试题

    千次阅读 2019-12-06 21:42:08
    一、选择题 针对以下题目,请选择最符合题目要求的答案。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不...B. DriverManager类调用getConnection()方法,创建连接对象并...

    一、选择题

    针对以下题目,请选择最符合题目要求的答案。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。每题2分

    1. 关于java中JDBC说法错误的是()。(选择二项)
      A. 加载JDBC驱动时,如果系统中不存在给定的类,则会引发的异常类型是SQLException。
      B. DriverManager类调用getConnection()方法,创建连接对象并返回引用。
      C. PreparedStatement接口是Statement的子类接口,它比Statement对象使用起来更加灵活,更有效率,更具安全性。
      D. ResultSet负责保存和处理查询结果,此对象的nextInt()方法可以使光标向下移动一行,然后通过一系列getXXXX方法实现对当前行各列数据的操作。

    2. 阅读下列java代码,选项正确的是()。(选择一项)

     abstract class Bird {
    	  private abstract void fly();  //第1行
    	  public abstract void shout();
     }
      abstract class RedBird extends Bird {  //第2行
    	public void fly() {
    		System.out.println(“曲线飞。。。。”)}
      }
     public class Test{
    	public static void main (String[] args){
    	   RedBird redBird =new RedBird();   //第3行
    	   redBird.fly();
    	}
    }
    

    A. 编译错误,错误位置是第1行和第2行
    B. 编译错误,错误位置是第2行和第3行
    C. 编译错误,错误位置是第1行和第3行
    D. 正确运行,输出结果是:曲线飞。。。

    1. 给定如下java代码,不可以填入下划线处的代码是()。(选择二项)
      import java.util.*;
      public class Test {
      public static void main (String[] args){


      list.add(“list”);
      }
      }
      A. List list=new LinkedList();
      B. List list=new List();
      C. LinkedList list=new ArrayList();
      D. LinkedList list=new LinkedList();

    2. 阅读如下java代码,执行结果是()。(选择一项)
      public class Test{
      public static void main (String [] args){
      try{
      String s=null;
      s=s.toLowerCase();
      }catch(ArithmeticException e){
      System.out.println(“ArithmeticException”);
      }catch(NumberFormatException e){
      System.out.println(“NumberFormatException”);
      }
      }
      A. ArithmeticException
      B. NumberFormatException
      C. Exception
      D. 没有输出任何类容,显示NumberFormatException异常信息

    3. 阅读java代码,选项()不是此方法的重载。(选择一项)
      public int getGirth(int a,int b){
      return 2*(a+b);
      }
      A. public int getGirth(int a){
      return 2a;
      }
      B. public double getGirth(int a,double b){
      return 2
      ab;
      }
      C. public double getGirth(int a,int b){
      return 2
      (a+b);
      }
      D. public double getGirth(int a,int b,int c){
      return c*(a+b)/2;
      }

    4. 阅读如下java代码(接口和Test类放在不同文件中),运行结果正确的选项是()。(选择一项)

    public interface Animal{
    		int MAX_AGE=100;
    		void shout();
    	}
    	class Dog implements Animal{
    		public void shout(){
    			System.out.println("WW");
    		}
    	}
    	class Cat implements Animal{
    		public void shout(){
    			System.out.println("MM");
    		}
    	}
    	public class Test{
    		public static void main(String[] args){
    			Animal al=new Dog();
    			al.shout();
    			al.MAX_AGE=150;
    			System.out.println(al.MAX_AGE);
    		}
    	}
    }
    

    A. WW
    100
    B. WW
    150
    C. MM
    150
    D. 编译错误

    1. 阅读下面java片段,在D盘下有文件aa.txt,存蓄的内容是“我爱学java!”,下列选项正确的是()。(选择一项)
    Reader rd=null;	//字符流
    	char[] ch=null;
    	int length=0;
    	StringBuffer sb=new StringBuffer();
    	try{
    		rd=new FileReader("d:/aa.txt");
    		ch=new char[1];
    		length=rd.read(ch);
    		while(length!=0){
    			sb.append(ch);
    			length=rd.read(ch);
    		}
    		System.out.println(sb.toString());
    	}
    

    A. 控制台输出内容为:“我爱学java!”
    B. 控制台输出内容为:“我”
    C. 编译正常,但什么也没有输出,程序死循环
    D. 编译错误

    1. 在JAVA中,关于面向对象,说法不正确的是()(选择一项)
      A. 现实世界就是“'面向对象的”,面向对象就是采用“现实模拟”的方法设计和开发程序
      B. 面向对象设计的过程就是抽象的过程
      C. 面向对象技术是目前计算机软件开发中最流行的技术
      D. java和C语言都是完全面向对象的编程语言

    2. 在JAVA中,关于构造方法,说法错误的是()。(选择一项)
      A. 方法名和类名相同
      B. 没有返回类型
      C. 必须声明为public
      D. 可以重载

    3. 在JAVA中, 以下关于static关键字的说法不正确的是()(选择两项)
      A. static 可以用来修饰方法,但不可以修饰属性
      B. 在方法里可以定义static变量
      C. static修饰的属性和方法称为类属性、类方法
      D. 不使用static修饰的属性和方法,通常称为实例属性、实例方法

    4. 在JAVA中,关于继承的说法错误的是()(选择一项)
      A. 使用extends关键字实现一个类继承另一个类
      B. 使用JAVA类都直接或间接地继承java.lang.Object类
      C. 在子类的构造方法中,必须显式调用父类的构造方法
      D. 在子类的构造方法中,可以通过super关键字调用父类的构造方法

    5. 以下JAVA代码,横线处应填写()

       Try{
    	Class.forname(JDBC驱动类);
    	Connection con=DriverManager.getConnection(JDBC URL,数据库用户名,密码);
    	Statement stmt=con.createStatement();
    	ResultSet rs=________("select * from stuinfo");
    	While(____){
    	//处理结果
    	.............省略代码.............
    	}
    	}catch(Exception ex){
    		.....省略代码............
    	}(选择一项)	
    

    A. stmt.executeUpdate
    rs.hasNext()
    B. stmt.executeQuery
    rs.hasNext()
    C. stmt.executQuery
    rs.next()
    D. stmt.executeUpdate
    rs.next()

    1. 在JAVA中,()类的主要职责是依据数据库的不同管理不同的JDBC驱动程序。(选择一项)
      A. Statement
      B. Connection
      C. DriverManager
      D. ResultSet

    2. 在JAVA中,下列选项()不是实现多态的条件是。(选择一项)
      A. 继承的存在
      B. 子类重写父类的方法
      C. 父类引用变量指向子类对象
      D. 父类必须是抽象类

    3. 在JAVA中,假设下列每个选项中的两个方法在同一个类中, 则属于方法的重载的是()(选择二项)
      A. public void work()和public void work (String type)
      B. public String work(String type)和public void work(Sting type)
      C. public void work(String type)和public void work2(String type)
      D. public void work(String type)和public void work(String type,int time)

    4. 在JAVA中,关于异常处理,以下说法不正确的是()(选择一项)
      A. java的异常处理是通过5个关键字来实现的:try、catch、finally、throw和throws
      B. 一个try语句块后面只能跟一个catch语句块和一个finally语句块
      C. log4j是一个优秀的日志记录工具
      D. 异常可以分为Checked异常和运行时异常两大类

    5. 下列关于java.until.ArrayList的说法正确的是()(选择二项)
      A. 这个集合的元素是有序的
      B. 可以通过键来获取这个集合的元素
      C. 可以通过addFirst()方法,在集合的首部插入元素
      D. 在对这个集合执行遍历操作时,效率比较高

    6. 如下JAVA代码中,存在错误的代码是()

    abstract class Shape{//1
    	public abstract double getArea(){};//2
    }
    class Square extends Shape{
    	private double height=0;
    	public Square(double height){
    		this.height=height;
    	}
    	public double getArea(){ //3
    		return(this.height*this.height);
    	}		
    }
    class Test{
    	public static void main(String[] args) {
    		Shape square=new Square(3); //4
    		System.out.print(square.getArea());
    	}
    }(选择一项)
    

    A. 1
    B. 2
    C. 3
    D. 4

    1. 如下JAVA代码,编译运行结果是()。
    public class Test{
    	public static void main(String[] args) {
    		String[]aryTest={"1#","2#"};
    		try {
    			for(int i=0;i<aryTest.length;i++){
    				System.out.println(aryTest[i]);
    			}
    			System.out.print("3#");
    		} catch (ArrayIndexOutOfBoundsException e) {
    			System.out.print("4#");
    		}finally{
    			System.out.print("5#");
    		}
    		System.out.print("6#");
    	}
    }(选择一项)
    

    A. 输出1#2#3#6#
    B. 输出1#2#3#5#6#
    C. 输出1#2#5#后,由于程序异常而中止
    D. 输出1#2#5#6#后,由于程序异常而中止

    1. 下面的程序中定义了一个JAVA接口,其中包含()处错误。
    public interface Shape{
    	int MAX_SIZE=20;
    	void calculate(){
    		System.out.println("calculate....");
    	}
    	private int getSize();
    	void setSize(int i);
    }(选择一项)
    

    A. 1
    B. 2
    C. 3
    D. 没有错误

    二、问答题 每题10分

    1、什么是多态?以及多态体现的理念是什么?

    2、简要说明时候JDBC操纵Oracle数据库的步骤

    3、简述子类转换成父类时的原则。

    4、简要说明abstract、final关键字的用法

    三、编程题 20分(每题10分)

    1. 创建一个打印机类Printer,定义抽象方法print();创建两个子类:针式打印机DoMatriPrinter和喷墨打印机类InkperPrinter,并在各自类中重写方法print(),编写测试类实现两种打印机打印。再添加一个激光打印机子类LaserPrinter,重写方法print(),修改测试类实现该打印机打印。

    2. 使用JDBC对数据库中的数据进行操作在程序开发时是很常见的工作,为了加快开发速度、优化代码,请编写一个DBUtil类来完成数据库的连接与关闭。
      1)建立类DBUtil
      2)编写连接的方法
      3)编写关闭的方法

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,566
精华内容 1,826
关键字:

java面向对象试题

java 订阅