构造方法练习题
Posted 2734156755z
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构造方法练习题相关的知识,希望对你有一定的参考价值。
1.猜数字游戏:一个类A有一个成员变量v,有一个初值100。定义一个类,对A类的成员变量v进行猜。如果大了则提示大了,小了则提示小了。等于则提示猜测成功。
1 public class A {
2 int v=100;
3 }
4
5
6 //测试类
7
8 import java.util.Scanner;
9
10 public class Test {
11
12 public static void main(String[] args) {
13 A a =new A();
14 Scanner input = new Scanner(System.in);
15 System.out.println("请输入猜测的数字");
16 while(true){
17 int i = input.nextInt();
18 if(i > a.v){
19 System.out.println("猜大了");
20 continue;
21 }
22 if(i < a.v ){
23 System.out.println("猜小了");
24 continue;
25 }
26 if(i == a.v ){
27 System.out.println("猜对了");
28 break;
29 }
30 }
31 }
32 }
2.请定义一个交通工具(Vehicle)的类,其中有:
属性:速度(speed),体积(size)等等
方法:移动(move()),设置速度(setSpeed(int speed)),加速speedUp(),减速speedDown()等等.
最后在测试类Vehicle中的main()中实例化一个交通工具对象,并通过构造方法给它初始化speed,size的值,并且通过打印出来。
另外,调用加速,减速的方法对速度进行改变。
1 public class Vehicle { 2 int size; 3 int speed; 4 double speedUp; 5 double speedDown; 6 int move; 7 void move(int move){ 8 move=move; 9 System.out.println("移动的距离为"+move); 10 } 11 public int getSize() { 12 return size; 13 } 14 public void setSize(int size) { 15 this.size = size; 16 } 17 public int getSpeed() { 18 return speed; 19 } 20 public void setSpeed(int speed) { 21 this.speed = speed; 22 } 23 public void speedUp(){ 24 speedUp=speed+2; 25 System.out.println("加速后的速度"+speedUp); 26 } 27 public void speedDown(){ 28 speedDown = speed-2; 29 System.out.println("减速后的速度"+speedDown); 30 } 31 } 32 33 34 35 36 37 //测试类 38 public class Test1 { 39 40 public static void main(String[] args) { 41 Vehicle v=new Vehicle(); 42 v.setSize(10); 43 v.setSpeed(5); 44 System.out.println("当前体积为"+v.getSize()+"当前速度为"+v.getSpeed()); 45 v.move(10); 46 v.speedUp(); 47 v.speedDown(); 48 } 49 50 }
1 public class Vehicle {
2 int size;
3 int speed;
4 double speedUp;
5 double speedDown;
6 int move;
7 void move(int move){
8 move=move;
9 System.out.println("移动的距离为"+move);
10 }
11 public int getSize() {
12 return size;
13 }
14 public void setSize(int size) {
15 this.size = size;
16 }
17 public int getSpeed() {
18 return speed;
19 }
20 public void setSpeed(int speed) {
21 this.speed = speed;
22 }
23 public void speedUp(){
24 speedUp=speed+2;
25 System.out.println("加速后的速度"+speedUp);
26 }
27 public void speedDown(){
28 speedDown = speed-2;
29 System.out.println("减速后的速度"+speedDown);
30 }
31 }
32
33
34
35
36
37 //测试类
38 public class Test1 {
39
40 public static void main(String[] args) {
41 Vehicle v=new Vehicle();
42 v.setSize(10);
43 v.setSpeed(5);
44 System.out.println("当前体积为"+v.getSize()+"当前速度为"+v.getSpeed());
45 v.move(10);
46 v.speedUp();
47 v.speedDown();
48 }
49
50 }
3.在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。
定义名为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)
分别对时、分、秒进行加减运算。
1 package com.oracle.demo01;
2
3 public class MyTime {
4 private int hour;
5 private int minute;
6 private int second;
7 public MyTime(){
8
9 }
10 public MyTime(int hour,int minute,int second){
11 this.hour=hour;
12 this.minute=minute;
13 this.second=second;
14 huansuan();
15 }
16 public void addSecond(int sec){
17 second+=sec;
18 huansuan();
19 }
20 public void addMinute(int min){
21 minute+=min;
22 huansuan();
23 }
24 public void addHour(int hou){
25 hour+=hou;
26 huansuan();
27 }
28 public void subSecond(int sec){
29 second-=sec;
30 huansuan();
31 }
32 public void subMinute(int min){
33 minute-=min;
34 huansuan();
35 }
36 public void subHour(int hou){
37 hour-=hou;
38 huansuan();
39 }
40 public void display(){
41 String h=null;
42 String m=null;
43 String s=null;
44 if(hour<10){
45 h="0"+hour;
46 }else{
47 h=hour+"";
48 }
49 if(minute<10){
50 m="0"+minute;
51 }else{
52 m=minute+"";
53 }
54 if(second<10){
55 s="0"+second;
56 }else{
57 s=second+"";
58 }
59 System.out.println("当前时间为:"+h+"点"+m+"分"+s+"秒");
60 }
61 public void huansuan(){
62 //对秒进行换算
63 if(second>=60){
64 minute=minute+second/60;
65 second=second%60;
66 }else if(second<0){
67 if(second%60 != 0){
68 minute=minute+(second/60-1);
69 second=second%60+60;
70 }else{
71 minute=minute+second/60;
72 second=second%60;
73 }
74 }
75 //对分钟进行换算
76 if(minute>=60){
77 hour=hour+minute/60;
78 minute=minute%60;
79 }else if(minute<0){
80 if(minute%60 !=0){
81 hour=hour+(minute/60-1);
82 minute=minute%60+60;
83 }else{
84 hour=hour+minute/60;
85 minute=minute%60;
86 }
87 }
88 //对小时进行换算
89 if(hour>=24){
90 hour=hour%24;
91 }else if(hour<0){
92 if(hour%24 !=0){
93 hour=hour%24+24;
94 }else{
95 hour=hour%24;
96 }
97 }
98 }
99 }
测试类:
1 package com.oracle.demo01;
2
3 public class Test2 {
4
5 public static void main(String[] args) {
6 MyTime my=new MyTime(20,45,80);
7 my.display();
8 }
9
10 }
运行结果:
4、
编写Java程序,模拟简单的计算器。
定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有。编写构造方法,赋予n1和n2初始值,
再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方法,
分别对两个成员变量执行加、减、乘、除的运算。
在main方法中创建Number类的对象,调用各个方法,并显示计算结果。
public class Number { private int n1; private int n2; private String n; Number(){ n1=0; n2=0; } Number(int n1,int n2){ this.n1=n1; this.n2=n2; } public int getN1() { return n1; } public void setN1(int n1) { this.n1 = n1; } public int getN2() { return n2; } public void setN2(int n2) { this.n2 = n2; } public void addition(){ p(n1+n2); } public void subtration(){ p(n1-n2); } public void multiplication(){ p(n1*n2);; } public void division(){ p(n1/n2); } public void p(int n){ System.out.println(n); } } public class Test3 { public static void main(String[] args) { Number num=new Number(3,6); num.addition(); num.subtration(); num.multiplication(); num.division(); } }
5:
编写Java程序,用于显示人的姓名和年龄。
定义一个人类(Person),该类中应该有两个私有属性,姓名(name)和年龄(age)。定义构造方法,用来初始化数据成员。再定义显示(display)方法,将姓名和年龄打印出来。
在main方法中创建人类的实例,然后将信息显示。
public class Person { private String name; private int age; Person(){ } Person(String name,int age){ this.name=name; this.age=age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void display(){ System.out.println(this.name+"的年龄是"+this.age+"岁"); } } public class Test4 { public static void main(String[] args) { Person p=new Person(); p.setName("薛之谦"); p.setAge(33); p.display(); } }
6:
定义一个名为Vehicles(交通工具)的基类,该类中应包含String类型的成员属性brand(商标)和color(颜色),还应包含成员方法run(行驶,在控制台显示“我已经开动了”)和showInfo(显示信息,在控制台显示商标和颜色),并编写构造方法初始化其成员属性。
编写Car(小汽车)类继承于Vehicles类,增加int型成员属性seats(座位),还应增加成员方法showCar(在控制台显示小汽车的信息),并编写构造方法。
编写Truck(卡车)类继承于Vehicles类,增加float型成员属性load(载重),还应增加成员方法showTruck(在控制台显示卡车的信息),并编写构造方法。
在main方法中测试以上各类。
1 public class Vehicles { 2 private String brand; 3 private String color; 4 Vehicles(){ 5 6 } 7 Vehicles(String brand,String color){ 8 this.brand=brand; 9 this.color=color; 10 } 11 public String getBrand() { 12 return brand; 13 } 14 public void setBrand(String brand) { 15 this.brand = brand; 16 } 17 public String getColor() { 18 return color; 19 } 20 public void setColor(String color) { 21 this.color = color; 22 } 23 public void run(){ 24 System.out.println("我已经开动了"); 25 } 26 public void showInfo(){ 27 System.out.println("小汽车的商标为"+this.brand+"颜色为"+this.color); 28 } 29 30 } 31 32 33 34 35 36 37 public class Test5 { 38 39 public static void main(String[] args) { 40 Vehicles v=new Vehicles("玛莎拉蒂","红色"); 41 v.showInfo(); 42 v.run(); 43 Car c=new Car("林肯","黑色", 15); 44 c.showCar(); 45 c.run(); 46 Truck t=new Truck("Jeep","红色"); 47 t.showTruck(); 48 t.run(); 49 } 50 51 }
7.定义一个网络用户类,要处理的信息有用户ID、用户密码、email地址。在建立类的实例时,把以上三个信息都作为构造函数的参数输入,其中用户ID和用户密码时必须的,缺省的email地址是用户ID加上字符串"@gameschool.com"
1 public class User {
2 private String id;
3 private String password;
4 private String Email;
5 User(){
6
7 }
8 User(String id,String password,String Email){
9 super();
10 this.id=id;
11 this.password=password;
12 this.Email=Email;
13 }
14 User(String id,String password){
15 super();
16 this.id=id;
17 this.password=password;
18 this.Email=id+"@gameschool.com";
19 }
20 void shuchu(){
21 System.out.println("用户id为"+this.id+"
"+"用户密码为"+this.password+"
"+"用户地址为"+this.Email);
22 }
23 }
1 public class Truck extends Vehicles {
2 Truck(String brand, String color) {
3 super(brand, color);
4 }
5 float load;
6 public void showTruck(){
7 System.out.println("卡车的商标为"+super.getBrand()+"颜色为"+super.getColor()+"载重为"+this.load);
8 }
9 }
//测试类
1 public class Test6 {
2
3 public static void main(String[] args) {
4 User u=new User("李四","123456");
5 u.shuchu();
6 }
7
8 }
以上是关于构造方法练习题的主要内容,如果未能解决你的问题,请参考以下文章
创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的载重量。 编写两个构造方法:一个没有(代码片段