Java面向对象编程练习题
- 格式:doc
- 大小:157.50 KB
- 文档页数:26
java 面向对象练习题Java面向对象练习题1. 场景描述:小明是一名学生,他参加了一场Java编程的培训。
在课堂上,老师出了一些面向对象的练习题,希望学生能够通过练习加深对Java面向对象的理解。
2. 第一题:设计一个名为"Person"的类,该类包括以下数据成员:- 姓名(name)- 年龄(age)- 性别(gender)并且提供以下方法:- 构造方法(带参数初始化所有数据成员)- getter和setter方法- 显示个人信息的方法(输出姓名、年龄和性别)编写测试类,创建两个Person对象并设置相关属性后,分别通过调用显示个人信息的方法来展示它们的信息。
3. 第二题:设计一个名为"Student"的类,该类继承自Person类,并且新增以下数据成员:- 学号(studentID)- 成绩(score)其中,学号和成绩均为整型数据。
并且提供以下方法:- 构造方法(带参数初始化所有数据成员)- getter和setter方法- 重写父类的显示个人信息的方法,包括学号和成绩的输出编写测试类,创建一个Student对象并设置相关属性后,通过调用显示个人信息的方法展示其信息。
4. 第三题:设计一个名为"Teacher"的类,该类继承自Person类,并且新增以下数据成员:- 工号(teacherID)- 工龄(workingYears)其中,工号为字符串类型,工龄为整型数据。
并且提供以下方法:- 构造方法(带参数初始化所有数据成员)- getter和setter方法- 重写父类的显示个人信息的方法,包括工号和工龄的输出编写测试类,创建一个Teacher对象并设置相关属性后,通过调用显示个人信息的方法展示其信息。
5. 第四题:设计一个名为"Shape"的抽象类,该类包括以下数据成员:- 形状名称(name)并且提供以下方法:- 构造方法(带参数初始化形状名称)- 抽象方法"calculateArea",用于计算形状的面积设计并实现两个继承自Shape类的具体子类:- 圆形类(Circle):新增数据成员半径(radius),重写calculateArea方法来计算圆形的面积(3.14 * 半径 * 半径)- 矩形类(Rectangle):新增数据成员长度(length)和宽度(width),重写calculateArea方法来计算矩形的面积(长度 * 宽度)编写测试类,创建一个Circle对象和一个Rectangle对象并设置相关属性后,分别调用calculateArea方法来计算它们的面积,并输出结果。
【练习题】01.类的成员变量:猜数字游戏:一个类A有一个成员变量v,有一个初值100。
定义一个类,对A 类的成员变量v进行猜。
如果大了则提示大了,小了则提示小了。
等于则提示猜测成功。
import java.util.*;class A{int v = 100;A(){this.v = v;}}public class b01{public static void main(String args[]){A a = new A();Scanner intput = new Scanner(System.in);int intputvalue = intput.nextlnt();if(intputvalue>a.v)System.out.println("你的输入大于这个值");if(intputvalue<a.v)System.out.println("你的输入小于这个值");if(intputvalue==a.v)System.out.println("猜测成功");}}【练习题】02.类的成员变量:请定义一个交通工具(Vehicle)的类,其中有:属性:速度(speed),体积(size)等等方法:移动(move()),设置速度(setSpeed(int speed)),加速speedUp(),减速speedDown()等等.最后在测试类Vehicle中的main()中实例化一个交通工具对象,并通过方法给它初始化speed,size的值,并且通过打印出来。
另外,调用加速,减速的方法对速度进行改变。
class Vehicle{int speed;int size;void move(){};void setSpeed(int speed){this.speed = speed;}void speedUp(){speed = speed+1;this.speed=speed;}void speedDown(){speed = speed-1;this.speed=speed;}}public class b01{ public static void main(String args[]){Vehicle a = new Vehicle();a.setSpeed(55);a.size = 80;a.speedUp();System.out.println("Speed:"+a.speed+"\nsize:"+a.size);}}【练习题】03.类的成员变量与方法、构造方法在程序中,经常要对时间进行操作,但是并没有时间类型的数据。
面向对象编程基本知识练习一、判断题1.不需要定义类,就能创建对象。
()2.构造方法用于给类的private 实例变量赋值。
()3.对象一经声明就可以立即使用。
()4.在定义变量和方法时,必须清楚地在其面前标上访问权限修饰符。
()5.Java 程序中的参数传递都是把参数值传递给方法定义中的参数。
()6.在类定义中,成员访问权限修饰符不能多次出现。
()7.new 操作符动态地为对象按其指定的类型分配内存,并返回该类型的一个引用。
()8.类的方法通常设为public,而类的实例变量一般也设为public。
()9.构造方法在创建对象时被调用。
()10.通过点运算符与类对象的引用相连,可以访问此类的成员。
()11.声明为protected 的类成员只能被此类中的方法访问。
()12.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间。
()13.类的成员变量可以放在类体的任意位置。
()14.声明为protected 的类成员可以被此类作用域中的任何对象访问。
()15.没有返回值的方法可以用void 来表示,也可以不加。
()二、选择题1. 下面对对象概念描述错误的是:( )A 操作是对象的动态属性B 任何对象都必须有继承性C 对象间的通讯靠消息传递D 对象是属性和方法的封装体2.编译并运行下面的程序,运行结果为:( )public class A{public static void main(String[] args){A a=new A();a.method(8);}void method(int i){System.out.println(“int:“+i);}void method(long i){System.out.println(“long:“+i);}}A 程序可以编译运行,输出结果为int:8B 程序可以编译运行,输出结果为long:8C 程序有编译错误,因为两个method()方法必须定义为静态(static)的D 程序可以编译运行,但没有输出3.下面关于类的说法不正确的是:()A 类是Java 语言中的一种复合数据类型B 类中不包含数据变量和方法C 类是对所有具有一定共性的对象的抽象D Java 语言的类只支持单继承4.能作为类及其成员的修饰符是:()A interfaceB classC protectedD public5.设x、y 均为已定义的类名,下列声明对象x1 的语句不可能正确的是:()A public x xl=new y();B public y xl=new x();C x xl=new x();D x xl=x();6.面向对象程序设计技术的特点是:()A 可重用性B 可维护性C 表示方法的一致性D 可重用性、可维护性、表示方法的一致性7.下列方法定义中,方法头不正确的是:()A public static x(double a){…}B public static int x(double y){…}C void x(double d)D public int x(){…}8.设已声明了一个类A 的两个对象al、a2,为了初始化a1 和a2,下面语句正确的是:()A al=new(); a2=new();B al=A new(); a2=A new();C al,a2=new A();D al=new A(); a2=new A();9.构造方法何时被调用?()A 类定义时B 使用对象的变量时C 调用对象方法时D 创建对象时10.下列哪个类声明是正确的?()A public abstract class Car{…}B abstract private move(){…}C protected private number;D abstra ct final class Hl{…}11.下列不属于面向对象程序设计的基本特征的是:()B 封装C 继承D 静态12.请看下面的程序段class Person {String name,department;int age;public Person(String n) { name = n; }public Person(String n,int a) { name = n; age = a; }public Person(String n,String d,int a) {//doing the same as two arguments version of constructer//including assignment name=n,age=a}}下面那一选项可以添加到“//doing the same……”处:()A Person(n,a)B this(Person(n,a))C this(n,a)D this(name.age)13.()是一个特殊的方法,用于对类的实例变量进行初始化。
java面向对象编程练习题答案Java面向对象编程练习题答案Java面向对象编程是计算机科学中非常重要的一部分,它是一种编程范式,通过它可以更好地组织和管理代码。
在学习Java面向对象编程时,经常会遇到一些练习题,下面我们来看一些常见的练习题及其答案。
1. 编写一个Java类,实现一个简单的学生信息管理系统。
```javapublic class Student {private String name;private int age;private String gender;public Student(String name, int age, String gender) { = name;this.age = age;this.gender = gender;}public String getName() {return name;}public int getAge() {return age;}public String getGender() {return gender;}public void setName(String name) { = name;}public void setAge(int age) {this.age = age;}public void setGender(String gender) {this.gender = gender;}}```2. 编写一个Java类,实现一个简单的图书管理系统。
```javapublic class Book {private String title;private String author;private int year;public Book(String title, String author, int year) {this.title = title;this.author = author;this.year = year;}public String getTitle() {return title;}public String getAuthor() {return author;}public int getYear() {return year;}public void setTitle(String title) {this.title = title;}public void setAuthor(String author) { this.author = author;}public void setYear(int year) {this.year = year;}}3. 编写一个Java类,实现一个简单的汽车租赁系统。
专题1 初识Java一、填空题1.自从Sun推出Java以来,按应用围可分为三个版本,分别是()、()、()。
2.环境变量的设置,若JDK安装在“D:\JDK”,则应设置Path为()、classpath为()。
3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。
4.如果Java源文件中有多个类,那么只能有一个类是()类。
二、选择题1.作为Java应用程序入口的main方法,其声明格式是()A.public static int main(String args[]) B.public static void main(String args[]) C.public void main(String args[]) D.public int main(String args[])2.下面命令正确的是()A.java AppFirst.java B.java AppFirstC.java appfirst.class D.javac AppFirst3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为()A.java FirstApplet B.javac FirstApplet.java C.appletviewer FirstApplet.java D.appletviewer FirstApplet.html 4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。
A.bin B.jre C.include D.doc5.Java语言是一种__语言。
A.机器B.汇编C.面向过程的D.面向对象的6、Java程序的最基本组成单位是__。
A.函数B.过程C.变量D.类三、简答题(十分重要)1.Java语言有哪些特点?2.JDK安装完成后,如何设置环境变量?4.简述Java应用程序的开发过程专题2 标识符、表达式、数据类型一、填空题1.Java逻辑常量有两个:()和()。
java 面向对象练习题Java面向对象练习题Java作为一种面向对象的编程语言,具有强大的功能和广泛的应用领域。
通过练习题的形式,我们可以巩固和提高对Java面向对象编程的理解和应用能力。
本文将为读者提供一些常见的Java面向对象练习题,帮助读者进一步熟悉Java编程语言。
1. 创建一个学生类(Student),包含以下属性和方法:- 属性:姓名(name)、学号(id)、年级(grade)- 方法:学习(study)、休息(rest)、展示信息(showInfo)2. 创建一个图书类(Book),包含以下属性和方法:- 属性:书名(title)、作者(author)、价格(price)- 方法:借阅(borrow)、归还(returnBook)、展示信息(showInfo)3. 创建一个形状类(Shape),包含以下属性和方法:- 属性:形状名称(name)- 方法:计算面积(calculateArea)、计算周长(calculatePerimeter)4. 创建一个汽车类(Car),包含以下属性和方法:- 属性:品牌(brand)、颜色(color)、速度(speed)- 方法:加速(speedUp)、减速(slowDown)、展示信息(showInfo)5. 创建一个银行账户类(BankAccount),包含以下属性和方法:- 属性:账户名(accountName)、账户余额(balance)- 方法:存款(deposit)、取款(withdraw)、展示信息(showInfo)以上是一些常见的Java面向对象练习题,通过完成这些练习题,可以加深对Java面向对象编程的理解,并提升解决实际问题的能力。
在实现这些练习题的过程中,可以合理运用类与对象、封装、继承、多态等面向对象的特性,实现代码的复用与简化。
可以尝试使用以下示例代码完成其中一个练习题(以学生类为例):```javapublic class Student {private String name;private int id;private String grade;public Student(String name, int id, String grade) { = name;this.id = id;this.grade = grade;}public void study() {System.out.println(name + "正在学习");}public void rest() {System.out.println(name + "正在休息");}public void showInfo() {System.out.println("姓名:" + name);System.out.println("学号:" + id);System.out.println("年级:" + grade);}}```以上是一个简单的学生类的示例,通过创建学生对象并调用相关方法,可以实现学生学习、休息以及展示学生信息的功能。
java面向对象基础练习题Java面向对象基础练习题Java是一种面向对象的编程语言,它具有强大的面向对象特性和丰富的类库,使得开发者可以更加高效地编写可重用和可维护的代码。
为了巩固对Java面向对象基础的理解和应用,下面将介绍一些常见的练习题。
练习题一:学生类设计一个学生类,包括学生的姓名、年龄、性别和成绩等属性。
要求能够设置和获取学生的各个属性,并能够计算学生的平均成绩。
在主函数中创建多个学生对象,并输出每个学生的信息和平均成绩。
练习题二:图书类设计一个图书类,包括图书的名称、作者和价格等属性。
要求能够设置和获取图书的各个属性,并能够计算图书的折扣价。
在主函数中创建多个图书对象,并输出每本图书的信息和折扣价。
练习题三:汽车类设计一个汽车类,包括汽车的品牌、型号和价格等属性。
要求能够设置和获取汽车的各个属性,并能够计算汽车的年龄。
在主函数中创建多个汽车对象,并输出每辆汽车的信息和年龄。
练习题四:银行账户类设计一个银行账户类,包括账户的账号、姓名和余额等属性。
要求能够设置和获取账户的各个属性,并能够实现存款和取款的操作。
在主函数中创建多个银行账户对象,并进行存款和取款操作。
练习题五:商品类设计一个商品类,包括商品的名称、价格和库存等属性。
要求能够设置和获取商品的各个属性,并能够实现购买和退货的操作。
在主函数中创建多个商品对象,并进行购买和退货操作。
练习题六:手机类设计一个手机类,包括手机的品牌、型号和价格等属性。
要求能够设置和获取手机的各个属性,并能够实现打电话和发短信的操作。
在主函数中创建多个手机对象,并进行打电话和发短信操作。
练习题七:员工类设计一个员工类,包括员工的姓名、工号和工资等属性。
要求能够设置和获取员工的各个属性,并能够计算员工的年薪。
在主函数中创建多个员工对象,并输出每个员工的信息和年薪。
练习题八:动物类设计一个动物类,包括动物的名称、年龄和性别等属性。
要求能够设置和获取动物的各个属性,并能够实现动物的叫声。
专题1 初识Java一、填空题1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是()、()、()。
2.环境变量的设置,若JDK安装在“D:\JDK”,则应设置Path为()、classpath为()。
3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。
4.如果Java源文件中有多个类,那么只能有一个类是()类。
二、选择题1.作为Java应用程序入口的main方法,其声明格式是()A.public static int main(String args[]) B.public static void main(String args[])C.public void main(String args[]) D.public intmain(String args[])2.下面命令正确的是()A.java AppFirst.java B.java AppFirstC.java appfirst.class D.javac AppFirst3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为()A.java FirstApplet B.javac FirstApplet.javaC.appletviewer FirstApplet.java D.appletviewer FirstApplet.html4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。
A.bin B.jre C.include D.doc5.Java语言是一种__语言。
A.机器B.汇编C.面向过程的D.面向对象的6、Java程序的最基本组成单位是__。
A.函数B.过程C.变量D.类三、简答题(十分重要)1.Java语言有哪些特点?2.JDK安装完成后,如何设置环境变量?4.简述Java应用程序的开发过程专题2 标识符、表达式、数据类型一、填空题1.Java逻辑常量有两个:()和()。
【练习题】01.类的成员变量:猜数字游戏:一个类A有一个成员变量v,有一个初值100。
定义一个类,对A 类的成员变量v进行猜。
如果大了则提示大了,小了则提示小了。
等于则提示猜测成功。
import java.util.*;class A{int v = 100;A(){this.v = v;}}public class b01{public static void main(String args[]){A a = new A();Scanner intput = new Scanner(System.in);int intputvalue = intput.nextlnt();if(intputvalue>a.v)System.out.println("你的输入大于这个值");if(intputvalue<a.v)System.out.println("你的输入小于这个值");if(intputvalue==a.v)System.out.println("猜测成功");}}【练习题】02.类的成员变量:请定义一个交通工具(Vehicle)的类,其中有:属性:速度(speed),体积(size)等等方法:移动(move()),设置速度(setSpeed(int speed)),加速speedUp(),减速speedDown()等等.最后在测试类Vehicle中的main()中实例化一个交通工具对象,并通过方法给它初始化speed,size的值,并且通过打印出来。
另外,调用加速,减速的方法对速度进行改变。
class Vehicle{int speed;int size;void move(){};void setSpeed(int speed){this.speed = speed;}void speedUp(){speed = speed+1;this.speed=speed;}void speedDown(){speed = speed-1;this.speed=speed;}}public class b01{ public static void main(String args[]){Vehicle a = new Vehicle();a.setSpeed(55);a.size = 80;a.speedUp();System.out.println("Speed:"+a.speed+"\nsize:"+a.size);}}【练习题】03.类的成员变量与方法、构造方法在程序中,经常要对时间进行操作,但是并没有时间类型的数据。
页脚 【练习题】01.类的成员变量: 猜数字游戏:一个类A有一个成员变量v,有一个初值100。定义一个类,对A类的成员变量v进行猜。如果大了则提示大了,小了则提示小了。等于则提示猜测成功。 import java.util.*; class A{ int v = 100; A(){ this.v = v; } } public class b01 { public static void main(String args[]){ A a = new A(); Scanner intput = new Scanner(System.in); int intputvalue = intput.nextlnt(); if(intputvalue>a.v) System.out.println("你的输入大于这个值"); if(intputvalueSystem.out.println("你的输入小于这个值"); if(intputvalue==a.v) System.out.println("猜测成功"); } }
【练习题】02.类的成员变量: 请定义一个交通工具(Vehicle)的类,其中有: 属性:速度(speed),体积(size)等等 方法:移动(move()),设置速度(setSpeed(int speed)),加速speedUp(),减速speedDown()等等. 最后在测试类Vehicle中的main()中实例化一个交通工具对象,并通过方法给它初始化speed,size的值,并且通过打印出来。另外,调用加速,减速的方法对速度进行改变。 class Vehicle {int speed; int size; void move(){ }; void setSpeed(int speed){ this.speed = speed; } void speedUp(){ speed = speed+1; 页脚
this.speed=speed; } void speedDown(){ speed = speed-1; this.speed=speed; } } public class b01 { public static void main(String args[]){ Vehicle a = new Vehicle(); a.setSpeed(55); a.size = 80; a.speedUp(); System.out.println("Speed:"+a.speed+"\nsize:"+a.size); } } 【练习题】03.类的成员变量与方法、构造方法 在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。 定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有。 为MyTime类定义构造方法,以方便创建对象时初始化成员变量。 再定义diaplay方法,用于将时间信息打印出来。
为MyTime类添加以下方法: addSecond(int sec) addMinute(int min) addHour(int hou) subSecond(int sec) subMinute(int min) subHour(int hou) 分别对时、分、秒进行加减运算。 class MyTime { private int hour; private int minute; private int second; public MyTime(int hour,int minute,int second){ this.hour = hour; this.minute = minute; this.second = second; } void diaplay(){ System.out.println("时间:"+hour+":"+minute+":"+second 页脚
); } void addSecond(int sec){ second = second+sec; } void addMinute(int min){ minute = minute+min; } void addHour(int hou){ hour = hour+hou; } void subSecond(int sec){ second = second-sec; } void subMinute(int min){ minute = minute-min; } void subHour(int hou){ hour = hour-hou; } void Test(){ if(hour<=23&hour>=0&minute<=59&minute>=0&second<=59&second>=0) System.out.println("\nTrue\n"); else System.out.println("\nFalse\n"); } } public class b01 { public static void main(String args[]){ MyTime b = new MyTime(11,4,55); b.subHour(5); b.subMinute(5); b.subSecond(2); b.diaplay(); b.Test(); } }
【练习题】04.构造方法 编写Java程序,模拟简单的计算器。 定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有。编写构造方法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方法,分别对两个成员变量 页脚
执行加、减、乘、除的运算。 在main方法中创建Number类的对象,调用各个方法,并显示计算结果。 class Number { private int n1; private int n2; public Number(int n1,int n2){ this.n1 = n1; this.n2 = n2; } void addition(){ int equal = n1+n2; System.out.println("n1+n2="+equal); } void subtration(){ int equal = n1-n2; System.out.println("n1-n2="+equal); } void multiplication(){ int equal = n1*n2; System.out.println("n1*n2="+equal); } void division(){ int equal = n1/n2; System.out.println("n1/n2="+equal); } } public class b01 { public static void main(String args[]){ Number num = new Number(6,3); num.division(); } } 【练习题】05.构造方法: 编写Java程序,用于显示人的和年龄。 定义一个人类(Person),该类中应该有两个私有属性,(name)和年龄(age)。定义构造方法,用来初始化数据成员。再定义显示(display)方法,将和年龄打印出来。 在main方法中创建人类的实例,然后将信息显示。 class Person { private String name; private int age; 页脚
public Person(String name,int age){ this.name = name; this.age = age; } void display(){ System.out.println("——>"+name+"\n年龄——>"+age); } } public class b01 { public static void main(String args[]){ Person per = new Person("奥巴马",20); per.display(); } }
【练习题】06.get方法和set方法 定义一个类,该类有一个私有成员变量,通过构造方法将其进行赋初值,并提供该成员的getXXX()和setXXX()方法 提示:假设有private String name;则有 public void setName(String name){ this.name = name; }
public String getName(){ return this.name; } class Person { private String name; public Person (String n){ this.setName(n); } public void setName(String n){ name = n ; } public String getName(){ return name; } public void getInfo(){ System.out.println("名字:"+name); } } public class b01