包含java面向对象11综合练习的词条

发布时间:2022-11-20

本文目录一览:

  1. java面向对象综合实验。
  2. java面向对象程序设计练习题 求解答
  3. java面向对象练习题,急求答案~ 【练习题】26.综合题 定义一个抽象的"Role"类,

java面向对象综合实验。

源代码:

import java.util.*;
public class Test1 {
    public static class Student {
        int id;
        String name;
        int math;
        int english;
        int history;
        public void setId(int id) {
            this.id = id;
        }
        public int getId() {
            return id;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getName() {
            return name;
        }
        public void setMath(int math) {
            this.math = math;
        }
        public int getMath() {
            return math;
        }
        public void setEnglish(int english) {
            this.english = english;
        }
        public int getEglish() {
            return english;
        }
        public void setHistory(int history) {
            this.history = history;
        }
        public int getHistory() {
            return history;
        }
    }
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入学生人数:");
        int renshu = scan.nextInt();
        Student[] stu = new Student[renshu];
        for (int i = 0; i < renshu; i++) {
            stu[i] = new Student();
            int id, math, english, history;
            String name;
            System.out.println("请输入学生的学号:");
            Scanner scan1 = new Scanner(System.in);
            id = scan1.nextInt();
            System.out.println("请输入该生的姓名:");
            Scanner scan2 = new Scanner(System.in);
            name = scan2.next();
            System.out.println("请输入该生的数学、英语、历史成绩:");
            Scanner scan3 = new Scanner(System.in);
            math = scan3.nextInt();
            english = scan3.nextInt();
            history = scan3.nextInt();
            stu[i].setId(id);
            stu[i].setName(name);
            stu[i].setMath(math);
            stu[i].setEnglish(english);
            stu[i].setHistory(history);
        }
        List<Student> list = new ArrayList();
        list = Arrays.asList(stu);
        Iterator<Student> it = list.iterator();
        while (it.hasNext()) {
            Student s = new Student();
            s = it.next();
            System.out.print("学号:" + s.getId() + " 姓名:" + s.getName() + " 数学:" + s.getMath() + " 英语:" + s.getEglish() + " 历史" + s.getHistory());
            System.out.println();
        }
        System.out.println("三门全部通过的同学为:");
        Iterator<Student> it1 = list.iterator();
        while (it1.hasNext()) {
            Student s = it1.next();
            if (s.getMath() >= 60 && s.getEglish() >= 60 && s.getHistory() >= 60)
                System.out.println("学号:" + s.getId() + " 姓名:" + s.getName() + " 数学:" + s.getMath() + " 英语:" + s.getEglish() + " 历史" + s.getHistory());
        }
        System.out.println("三门全部不通过的同学为:");
        Iterator<Student> it2 = list.iterator();
        while (it2.hasNext()) {
            Student s = it2.next();
            if (s.getMath() < 60 && s.getEglish() < 60 && s.getHistory() < 60)
                System.out.println("学号:" + s.getId() + " 姓名:" + s.getName() + " 数学:" + s.getMath() + " 英语:" + s.getEglish() + " 历史" + s.getHistory());
        }
        System.out.println();
        System.out.println("三门至少有一门通过的同学为:");
        Iterator<Student> it3 = list.iterator();
        while (it3.hasNext()) {
            Student s = it3.next();
            if (s.getMath() >= 60 || s.getEglish() >= 60 || s.getHistory() >= 60)
                System.out.println("学号:" + s.getId() + " 姓名:" + s.getName() + " 数学:" + s.getMath() + " 英语:" + s.getEglish() + " 历史" + s.getHistory());
        }
        System.out.println();
        System.out.println("数学不通过的同学为:");
        Iterator<Student> it4 = list.iterator();
        while (it4.hasNext()) {
            Student s = it4.next();
            if (s.getMath() < 60)
                System.out.println("学号:" + s.getId() + " 姓名:" + s.getName() + " 数学:" + s.getMath() + " 英语:" + s.getEglish() + " 历史" + s.getHistory());
        }
    }
}

其实这样get、set不如直接定义一个构造函数方便。 还有下面这个源代码可能不符合要求,没有键盘输入,但是有分别用for和迭代器,更好理解。

import java.util.*;
public class Test {
    public static class Student {
        int id;
        String name;
        int math;
        int english;
        int history;
        public void setId(int id) {
            this.id = id;
        }
        public int getId() {
            return id;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getName() {
            return name;
        }
        public void setMath(int math) {
            this.math = math;
        }
        public int getMath() {
            return math;
        }
        public void setEnglish(int english) {
            this.english = english;
        }
        public int getEglish() {
            return english;
        }
        public void setHistory(int history) {
            this.history = history;
        }
        public int getHistory() {
            return history;
        }
    }
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.setId(11);
        s1.setName("dr");
        s1.setMath(100);
        s1.setEnglish(90);
        s1.setHistory(80);
        Student s2 = new Student();
        s2.setId(12);
        s2.setName("spe");
        s2.setMath(100);
        s2.setEnglish(50);
        s2.setHistory(80);
        Student s3 = new Student();
        s3.setId(13);
        s3.setName("wr");
        s3.setMath(50);
        s3.setEnglish(100);
        s3.setHistory(80);
        Student s4 = new Student();
        s4.setId(14);
        s4.setName("axe");
        s4.setMath(50);
        s4.setEnglish(50);
        s4.setHistory(50);
        List<Student> list = new ArrayList();
        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);
        System.out.println("使用迭代器:");
        System.out.println("所有学生成绩:");
        Iterator<Student> it = list.iterator();
        while (it.hasNext()) {
            Student s = it.next();
            System.out.print("学号:" + s.getId() + " 姓名:" + s.getName() + " 数学:" + s.getMath() + " 英语:" + s.getEglish() + " 历史" + s.getHistory());
            System.out.println();
        }
        System.out.println();
        System.out.println("三门全部通过的同学为:");
        Iterator<Student> it1 = list.iterator();
        while (it1.hasNext()) {
            Student s = it1.next();
            if (s.getMath() >= 60 && s.getEglish() >= 60 && s.getHistory() >= 60)
                System.out.println("学号:" + s.getId() + " 姓名:" + s.getName() + " 数学:" + s.getMath() + " 英语:" + s.getEglish() + " 历史" + s.getHistory());
        }
        System.out.println("三门全部不通过的同学为:");
        Iterator<Student> it2 = list.iterator();
        while (it2.hasNext()) {
            Student s = it2.next();
            if (s.getMath() < 60 && s.getEglish() < 60 && s.getHistory() < 60)
                System.out.println("学号:" + s.getId() + " 姓名:" + s.getName() + " 数学:" + s.getMath() + " 英语:" + s.getEglish() + " 历史" + s.getHistory());
        }
        System.out.println();
        System.out.println("三门至少有一门通过的同学为:");
        Iterator<Student> it3 = list.iterator();
        while (it3.hasNext()) {
            Student s = it3.next();
            if (s.getMath() >= 60 || s.getEglish() >= 60 || s.getHistory() >= 60)
                System.out.println("学号:" + s.getId() + " 姓名:" + s.getName() + " 数学:" + s.getMath() + " 英语:" + s.getEglish() + " 历史" + s.getHistory());
        }
        System.out.println();
        System.out.println("数学不通过的同学为:");
        Iterator<Student> it4 = list.iterator();
        while (it4.hasNext()) {
            Student s = it4.next();
            if (s.getMath() < 60)
                System.out.println("学号:" + s.getId() + " 姓名:" + s.getName() + " 数学:" + s.getMath() + " 英语:" + s.getEglish() + " 历史" + s.getHistory());
        }
        System.out.println();
        System.out.println("使用for语句");
        System.out.println("所有学生成绩:");
        for (int i = 0; i < list.size(); i++)
            System.out.println("学号" + list.get(i).getId() + " 姓名 " + list.get(i).getName() + " 数学" + list.get(i).getMath() + " 英语" + list.get(i).getEglish() + " 历史" + list.get(i).getHistory());
        System.out.println();
        System.out.println("三门全部通过的同学为:");
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).getMath() >= 60 && list.get(i).getEglish() >= 60 && list.get(i).getHistory() >= 60)
                System.out.println("学号" + list.get(i).getId() + " 姓名 " + list.get(i).getName() + " 数学" + list.get(i).getMath() + " 英语" + list.get(i).getEglish() + " 历史" + list.get(i).getHistory());
        }
        System.out.println();
        System.out.println("三门全部不通过的同学为:");
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).getMath() < 60 && list.get(i).getEglish() < 60 && list.get(i).getHistory() < 60)
                System.out.println("学号" + list.get(i).getId() + " 姓名 " + list.get(i).getName() + " 数学" + list.get(i).getMath() + " 英语" + list.get(i).getEglish() + " 历史" + list.get(i).getHistory());
        }
        System.out.println();
        System.out.println("三门至少有一门通过的同学为:");
        for (int i = 0; i < list.size(); ++i) {
            if (list.get(i).getMath() >= 60 || list.get(i).getEglish() >= 60 || list.get(i).getHistory() >= 60)
                System.out.println("学号" + list.get(i).getId() + " 姓名 " + list.get(i).getName() + " 数学" + list.get(i).getMath() + " 英语" + list.get(i).getEglish() + " 历史" + list.get(i).getHistory());
        }
        System.out.println();
        System.out.println("数学不通过的同学为:");
        for (int i = 0; i < list.size(); ++i) {
            if (list.get(i).getMath() < 60)
                System.out.println("学号" + list.get(i).getId() + " 姓名 " + list.get(i).getName() + " 数学" + list.get(i).getMath() + " 英语" + list.get(i).getEglish() + " 历史" + list.get(i).getHistory());
        }
        System.out.println();
    }
}

java面向对象程序设计练习题 求解答

Java面向对象程序设计复习题

一、选择题

  1. 下列哪个是Java中的关键字( C )。 A、run
    B、Integer
    C、default
    D、implement
  2. 下面关于Java.applet.Applet和其祖先类的描述语句哪个不对( B )。 A、Applet是Container的一种
    B、Applet是Window的一种
    C、Applet是Component的一种
    D、Applet是Panel的一种
  3. 下列类 DataOutputStream的构造方法正确的是( A )。 A、new DataOutputStream(new FileOutputStream("out.txt"));
    B、new DataOutputStream("out.txt");
    C、new DataOutputStream(new writer("out.txt"));
    D、new DataOutputStream(new FileWriter("out.txt"));
  4. 在switch(表达式)语句中,表达式的类型不能为( C )。 A、byte
    B、char
    C、long
    D、int
  5. 在接口MouseMotionListener中方法正确的是( A )。 A、public void mouseDragged(MouseEvent)
    B、public boolean mouseDragged(MouseEvent)
    C、public void mouseDragged(MouseMotionEvent)
    D、public boolean MouseDragged(MouseMotionEvent)
  6. 下面是一些异常类的层次关系
    Java.lang.Exception
    Java.lang.RuntimeException
    Java.lang.IndexOutOfBoundsException
    Java.lang.ArrayIndexOutOfBoundsException
    Java.lang.StringIndexOutOfBoundsException
    假设有一个方法X,能够抛出两个异常,Array Index和String Index异常,假定方法X中没有try-catch语句,下面哪个答案是正确的。( B ) A、方法X应该声明抛弃ArrayIndexOutOfBoundsException和StringIndexOutOfBoundsException。
    B、如果调用X的方法捕获IndexOutOfBoundsException,则ArrayIndexOutOfBoundsException和StringIndexOutOfBoundsException都可以被捕获。
    C、如果方法X声明抛弃IndexOutOfBoundsException,则调用X的方法必须用Try-catch语句捕获。
    D、方法X不能声明抛弃异常。
  7. 现有一变量声明为boolean aa;下面赋值语句中正确的是( D )。
    A、aa=0
    B、aa=True
    C、aa="true"
    D、aa=false
  8. 某类Example的main()方法参数为args,当输入数据Java Example cat时,args[0]的值为( A )。
    A、cat
    B、Java
    C、example
    D、null
  9. String s1=new String("Java");String s2=new String(s1)则下列哪个说法是正确的( C )。
    A、表达式s1==s2为真
    B、s1和s2是同一个对象
    C、表达式s1.equals(s2)为真
    D、以上均不对
  10. 类定义如下
    class Foo {
        public static void main(String args[]) {
            String s;
            System.out.println("s=" + s);
        }
    }
    
    则下列结论正确的是( C )。
    A、有输出结果,且为空
    B、没有输出结果
    C、编译错误
    D、有输出结果,且不为空
  11. 下列哪个不是Java的保留字( D )。
    A、float
    B、class
    C、extends
    D、virtual
  12. 下列符号中不能作为Java标识符的是( D )。
    A、abc
    B、$str1
    C、_pore
    D、45six
  13. 方法methodA定义如下:
    returnType methodA(byte x, double y) {
        return (short)x / y * 2;
    }
    
    则返回值returnType为( C )。
    A、byte
    B、double
    C、short
    D、int
  14. 如果float f=4.2F;Float g=new Float(4.2F);Double d=new Double(4.2);则下列选项正确的是( B )。
    A、f==g
    B、f==g.floatValue()
    C、d==f
    D、d.equals(f)
  15. 下列二维数组定义中错误的是( A )。
    A、int a[][]=new int[][];
    B、int []a[]=new int[10][10];
    C、int a[][]=new int[10][10];
    D、int [][]a=new int[10][10];
  16. 关于下列语句哪个答案是正确的( D )。
    System.out.println(4|7);
    A、4
    B、5
    C、6
    D、7
  17. 下面哪一个AWT组件可以有菜单栏MenuBar( A )。
    A、Java.awt.Frame
    B、Java.awt.Window
    C、Java.awt.Applet
    D、Java.awt.Panel
  18. 下列哪个方法用于创建并开始一个新的线程( B )。
    A、run();
    B、start();
    C、execute();
    D、run(Runnable r);
  19. 如果有Boolean a=new Boolean("yes"),则a.booleanValue()值为( D )。
    A、yes
    B、"yes"
    C、true
    D、false
  20. 以下类 DataOutputStream的构造方法正确的是( C )。
    A、new dataInputStream("in.txt");
    B、new dataInputStream(new file("in.txt"));
    C、new dataInputStream(new FileInputStream("in.txt"));
    D、new dataInputStream(new FileWriter("in.txt"));
  21. 编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。
    A、.Java
    B、.class
    C、.html
    D、.exe
  22. 设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A )。
    A、3
    B、3.5
    C、4
    D、5
  23. 在Applet表面输出文字时,可以选择不同的颜色,但是忘记了设置颜色的方法,应该首先在哪个类里面寻找( D )。
    A、Java .awt.Applet
    B、Java.awt.Panel
    C、Java.applet.Applet
    D、Java.awt.Component
  24. 类Cycle的main()方法为:
    public static void main(String args[]) {
        System.out.println(args[0]);
    }
    
    则运行时如果命令行语句为Java Cycle one two three,则输出结果为( B )。
    A、Cycle
    B、one
    C、two
    D、three
  25. 下面哪一个是Thread类中的静态方法( D )。
    A、start()
    B、stop()
    C、run()
    D、sleep(long m)
  26. 关于下列语句哪个答案是正确的( A )。
    if(575|2)System.out.println("true");
    A、不能编译成功
    B、可以编译成功,输出true
    C、可以编译成功,但无输出
    D、以上均不对
  27. 声明公用的abstract方法的正确格式是( C )。
    A、public abstract void add() {}
    B、public abstract add();
    C、public abstract void add();
    D、public virtual add();
  28. 下列程序结果正确的是( B )。
    public class Test {
        public static void main (String args []) {
            Ad a1 = new Ad();
            System.out.println(a1.add(1));
            Ad a2 = new Ad();
            System.out.println(a2.add(2));
        }
    }
    

java面向对象练习题,急求答案~ 【练习题】26.综合题 定义一个抽象的"Role"类,

package com.huawei.test;
public abstract class Role {
    // 姓名
    private String name;
    // 性别
    private String sex;
    // 年龄
    private int age;
    public Role() {
    }
    public Role(String name, int age, String sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void play() {
        System.out.println("this is Role");
    }
}
package com.huawei.test;
public class Employee extends Role {
    // 工资
    private String salary;
    // 员工id
    private String id;
    public Employee() {
        super();
    }
    public Employee(String salary, String id) {
        super();
        this.salary = salary;
        this.id = id;
    }
    public void play() {
        System.out.println("this is Employee");
    }
    public final void sing() {
        System.out.println("Employee extends Role");
    }
    public String getSalary() {
        return salary;
    }
    public void setSalary(String salary) {
        this.salary = salary;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
}
package com.huawei.test;
public class Manager extends Employee {
    private String vehicle;
    public Manager() {
        super();
    }
    public String getVehicle() {
        return vehicle;
    }
    public void setVehicle(String vehicle) {
        this.vehicle = vehicle;
    }
}
package com.huawei.test;
public class TestMethod {
    public static void main(String[] args) {
        Employee e = new Employee();
        e.play();
        e.sing();
        Manager m = new Manager();
        m.play();
        m.sing();
    }
}