Java面向对象试题

光头强的博客
• 阅读 2656

==1、== 请创建一个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.javaJava面向对象试题 A.javaJava面向对象试题 Bird.javaJava面向对象试题 Bird.javaJava面向对象试题

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

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

Person.javaJava面向对象试题 Student.javaJava面向对象试题 Java面向对象试题 Worker.javaJava面向对象试题 Mains.javaJava面向对象试题

==3、== 案例题目描述:

利用继承,来描述,人,老师,学生之间的关系 1)老师含有属性:name,age,subject,含有方法:eat,teach,toString 2)学生含有属性:name,age,class,含有方法:eat,study,toString 3)利用继承的思想,从老师和学生中抽象出人,并创建Test进行调用并输出(System.out) 2、判分标准 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.javaJava面向对象试题 Java面向对象试题 Student.java

Java面向对象试题 Teacher.java

Java面向对象试题 Test.javaJava面向对象试题 4、需求:首先定义一个抽象类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.javaJava面向对象试题 Cat.javaJava面向对象试题 Dog.javaJava面向对象试题 Test.javaJava面向对象试题

==5、== 请创建一个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.javaJava面向对象试题 SportsCar.javaJava面向对象试题 Test.javaJava面向对象试题

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

注意:因为从键盘输入我们还没有做,所以上面若提到使用键盘输入,改为在程序中随意定义几个值(如果会键盘输入那就使用键盘输入) USB.javaJava面向对象试题 Print.javaJava面向对象试题 Flash.javaJava面向对象试题 Computer.javaJava面向对象试题 Mains.javaJava面向对象试题

==7、== 完成以下要求的代码:(共30分)

(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();
    }
}

Java面向对象试题

==8、== 完成以下要求的代码:(共40分)

(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();
    }
}

Java面向对象试题

==9、== 完成以下要求的代码:

(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());
    }
}

Java面向对象试题

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
java中面向对象的一点学习总结
最近开始看java的一些东西,感觉比python麻烦些,今天学习了面向对象的一些东西,觉得挺多挺复杂,这里做个知识总结以一个简单的例子来说明java面向对象的三大特性,封装,继承,多态,有一个动物(Animal)基类,定义了run与eat方法,然后有一个猫(Cat)与狗(Dog)的子类继承了动物这个父类,子类重写(override)了父类的run与eat
Wesley13 Wesley13
2年前
java中多态的实现机制
多态的概念:  简单来说就是事物在运行过程中存在的不同状态,即父类或接口定义的引用变量指向子类或具体实现类的实例对象。程序调用方法在运行期才进行动态绑定,而不是引用变量的类型中定义的方法。多态存在的前提:1、存在继承关系,子类继承父类;2、子类重写父类的方法;3、父类引用指向子类对象。具体实例:1、定义一个父类:Animal
Wesley13 Wesley13
2年前
java向上转型和向下转型1
  在java继承体系中,认为父类(超类)在上层,子类在下层(派生类),向上转型就是把子类对象转成父类对象。1publicclassFather{2publicvoideat(){3System.out.println("我是父类的方法吃。。。。。");4}
Wesley13 Wesley13
2年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Wesley13 Wesley13
2年前
Java16周作业
题目1:编写一个应用程序,利用Java多线程机制,实现时间的同步输出显示。/\使用Runnable接口使用类创建线程对象,重写run()方法\\/代码publicclasstimetext{publicstaticvoidmain(Stringargs){Threa
Wesley13 Wesley13
2年前
Java 多态
类型的检测——向上转型向下转型向上转型:父类对象的引用指向子类对象,向下转型:向上转型的基础上再次指向子类的对象1.向上转型!(https://oscimg.oschina.net/oscnet/dd0d05d39a724e781b799ff5e35b921775d.jpg)!(https://oscimg.oschina.net/o
Wesley13 Wesley13
2年前
Java构造方法与析构方法实例剖析
Java构造方法类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量。在创建对象时,会自动调用类的构造方法。构造方法定义规则:Java中的构造方法必须与该类具有相同的名字,并且没有方法的返回类型(包括没有void)。另外,构造方法一般都应用public类型来说明,这样才能在程序任意的位置创建类的实例-
Wesley13 Wesley13
2年前
Java 设计鸟类Bird 鱼类Fish 都继承自抽象的动物类Animal, 实现其抽象方法Info 输出各自信息
|需求说明Java 设计鸟类Bird 鱼类Fish 都继承自抽象的动物类Animal, 实现其抽象方法Info 输出各自信息|实现思路|代码内容!(https://oscimg.oschina.net/oscnet/8b31e6721c77a609210ed89570c692efcd9.jpg)!(https:
Stella981 Stella981
2年前
Clone
Java中对象的创建clone顾名思义就是复制,在Java语言中,clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢?1使用new操作符创建一个对象2使用clone方法复制一个对象那么这两种方
Wesley13 Wesley13
2年前
Java基础语法入门
java基础语法一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。   对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。   类:类是一个模板,它描述一类对象的行为和状
光头强的博客
光头强的博客
Lv1
羁鸟恋旧林,池鱼思故渊。
文章
1
粉丝
1
获赞
1
热门文章

暂无数据