本文目录一览:
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面向对象程序设计复习题
一、选择题
- 下列哪个是Java中的关键字( C )。
A、run
B、Integer
C、default
D、implement - 下面关于Java.applet.Applet和其祖先类的描述语句哪个不对( B )。
A、Applet是Container的一种
B、Applet是Window的一种
C、Applet是Component的一种
D、Applet是Panel的一种 - 下列类 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")); - 在switch(表达式)语句中,表达式的类型不能为( C )。
A、byte
B、char
C、long
D、int - 在接口MouseMotionListener中方法正确的是( A )。
A、public void mouseDragged(MouseEvent)
B、public boolean mouseDragged(MouseEvent)
C、public void mouseDragged(MouseMotionEvent)
D、public boolean MouseDragged(MouseMotionEvent) - 下面是一些异常类的层次关系
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不能声明抛弃异常。 - 现有一变量声明为boolean aa;下面赋值语句中正确的是( D )。
A、aa=0
B、aa=True
C、aa="true"
D、aa=false - 某类Example的main()方法参数为args,当输入数据Java Example cat时,args[0]的值为( A )。
A、cat
B、Java
C、example
D、null - String s1=new String("Java");String s2=new String(s1)则下列哪个说法是正确的( C )。
A、表达式s1==s2为真
B、s1和s2是同一个对象
C、表达式s1.equals(s2)为真
D、以上均不对 - 类定义如下
则下列结论正确的是( C )。class Foo { public static void main(String args[]) { String s; System.out.println("s=" + s); } }
A、有输出结果,且为空
B、没有输出结果
C、编译错误
D、有输出结果,且不为空 - 下列哪个不是Java的保留字( D )。
A、float
B、class
C、extends
D、virtual - 下列符号中不能作为Java标识符的是( D )。
A、abc
B、$str1
C、_pore
D、45six - 方法methodA定义如下:
则返回值returnType为( C )。returnType methodA(byte x, double y) { return (short)x / y * 2; }
A、byte
B、double
C、short
D、int - 如果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) - 下列二维数组定义中错误的是( 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]; - 关于下列语句哪个答案是正确的( D )。
System.out.println(4|7);
A、4
B、5
C、6
D、7 - 下面哪一个AWT组件可以有菜单栏MenuBar( A )。
A、Java.awt.Frame
B、Java.awt.Window
C、Java.awt.Applet
D、Java.awt.Panel - 下列哪个方法用于创建并开始一个新的线程( B )。
A、run();
B、start();
C、execute();
D、run(Runnable r); - 如果有Boolean a=new Boolean("yes"),则a.booleanValue()值为( D )。
A、yes
B、"yes"
C、true
D、false - 以下类 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")); - 编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。
A、.Java
B、.class
C、.html
D、.exe - 设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A )。
A、3
B、3.5
C、4
D、5 - 在Applet表面输出文字时,可以选择不同的颜色,但是忘记了设置颜色的方法,应该首先在哪个类里面寻找( D )。
A、Java .awt.Applet
B、Java.awt.Panel
C、Java.applet.Applet
D、Java.awt.Component - 类Cycle的main()方法为:
则运行时如果命令行语句为Java Cycle one two three,则输出结果为( B )。public static void main(String args[]) { System.out.println(args[0]); }
A、Cycle
B、one
C、two
D、three - 下面哪一个是Thread类中的静态方法( D )。
A、start()
B、stop()
C、run()
D、sleep(long m) - 关于下列语句哪个答案是正确的( A )。
if(575|2)System.out.println("true");
A、不能编译成功
B、可以编译成功,输出true
C、可以编译成功,但无输出
D、以上均不对 - 声明公用的abstract方法的正确格式是( C )。
A、public abstract void add() {}
B、public abstract add();
C、public abstract void add();
D、public virtual add(); - 下列程序结果正确的是( 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();
}
}