练习题

题目分析

总结

题目分析

一.

定义一个Hero类
属性有 power,name,分别代表体力值和英雄的名子,体力值默认为100;
方法有
1.void go(); //行走的方法,如果体力值为0,则输出不能行走,此英雄已死亡的信息
2.void eat(int n); //吃的方法,参数是补充的血量,将 n的值加到属性power中,power的值最大为100,
3.void hurt();//每受到一次伤害,体力值-10,体力值最小不能小于0
编写测试类,来测试以上代码

思路:

1.读题,理解题目根据题目的给出的信息写代码

2.定义一个hero类,他的属性有体力和名字,体力值赋值为100。

3.定义三个方法,go方法if判断体力值是否大于0,大于0继续,小于等于0则输出已死亡。

eat(int n)方法中power加上传入的n,重新赋值power。   hurt方法中输入伤害次数,重新计算体力值,调用go方法,输出判断是否死亡。

代码

hero类:

package com.company.day15;/*
Author:
date:
problem:
定义一个Hero类
属性有 power,name,分别代表体力值和英雄的名子,体力值默认为100;
方法有
1.void go(); //行走的方法,如果体力值为0,则输出不能行走,此英雄已死亡的信息
2.void eat(int n); //吃的方法,参数是补充的血量,将 n的值加到属性power中,power的值最大为100,
3.void hurt();//每受到一次伤害,体力值-10,体力值最小不能小于0
编写测试类,来测试以上代码
1.
*/import java.util.Scanner;public class Excel2 {double power=100;//体力值String name;
//    int n;//补充的血量//行走方法public void go(double power){if(power>0){System.out.println("继续游戏");}else if(power<=0){System.out.println("不能行走,英雄已经死亡");}}//参数是补充的血量,将 n的值加到属性power中,power的值最大为100,public double eat(int n){power=power+n;if(power>100){return 0;}return power;}//伤害方法// 每受到一次伤害,体力值-10,体力值最小不能小于0public double hurt(){System.out.println("输入伤害次数");Scanner sca=new Scanner(System.in);//伤害次数int count=sca.nextInt();power=power-count*10;if(power<=0){go(power);}return power;}public Excel2(double power,String name){this.power=power;this.name=name;}
}

测试:

package com.company.day15;/*
Author:
date:
problem:
定义一个Hero类
属性有 power,name,分别代表体力值和英雄的名子,体力值默认为100;
方法有
1.void go(); //行走的方法,如果体力值为0,则输出不能行走,此英雄已死亡的信息
2.void eat(int n); //吃的方法,参数是补充的血量,将 n的值加到属性power中,power的值最大为100,
3.void hurt();//每受到一次伤害,体力值-10,体力值最小不能小于0
编写测试类,来测试以上代码
*/
public class Test2 {public static void main(String[] args) {Excel2 excel2=new Excel2(20,"奥特曼");
//        System.out.println(excel2.power);//输出体力值//调用eat方法
//        double result=excel2.eat(-20);
//        System.out.println(result);//调用hurt方法double result2=excel2.hurt();System.out.println(result2);}
}

二.编写自定义类实现图书信息设置

任务:

属性:书名、作者、出版社、价格

方法:信息介绍

要求:

设计构造函数实现对属性赋值

设置私有属性,get/set方法实现对属性的访问

限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10

限定作者、书名均为只读属性

信息介绍方法描述图书所有信息

思路:

1.一样,先读题,理解题目。根据题目给出的信息写代码。

2.属性全部设置为private,生成get/set方法。

3.if判断图书价格,get获取价格,小于10的话用set方法将价格用改为10.

4.只读属性,是只可以读取不可以修改。把作者,书名的set方法删除。避免用set方法修改数值。

5.定义一个show方法,传入所有的属性,然后输出。展示所有的图书信息。

代码:

类:

package com.company.day15;/*
Author:
date:
problem:
3、编写自定义类实现图书信息设置
任务:
属性:书名、作者、出版社、价格
方法:信息介绍
要求:
设计构造函数实现对属性赋值
设置私有属性,get/set方法实现对属性的访问
限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10
限定作者、书名均为只读属性
信息介绍方法描述图书所有信息1.写属性
2.
3.在构造方法中,不加书名和作者名。
4.写一个show方法,展示所有的图书信息
*/public class Excel3 {//属性private String name="平凡的世界";private String author="路遥";private String publishe;private double price;//方法//构造方法//限定作者、书名均为只读属性public Excel3(  String name,String author,String publishe, double price) {this.name = name;this.author = author;this.publishe = publishe;this.price = price;}//get/set方法实现对属性的访问public String getName() {return name;}public String getAuthor() {return author;}public String getPublishe() {return publishe;}public void setPublishe(String publishe) {this.publishe = publishe;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}//限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10//限定作者、书名均为只读属性//信息介绍方法描述图书所有信息
public void show(){System.out.println(getAuthor());System.out.println(getPrice());System.out.println(getName());System.out.println(getPublishe());
}}

测试:

package com.company.day15;/*
Author:
date:
problem:
3、编写自定义类实现图书信息设置
任务:
属性:书名、作者、出版社、价格
方法:信息介绍
要求:
设计构造函数实现对属性赋值
设置私有属性,get/set方法实现对属性的访问
限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10
限定作者、书名均为只读属性(把书名,作者的set方法删除)
信息介绍方法描述图书所有信息
*/public class Test3 {public static void main(String[] args) {//构造方法,创建对象,赋值Excel3 excel3=new Excel3("三体","刘慈欣","湖南出版社",0);//图书价格必须大于10,如果无效需进行提示,并强制赋值为10if(excel3.getPrice()<10){System.out.println("图书价钱较低,增为10元");excel3.setPrice(10);}//显示所有的信息excel3.show();}
}

三.编写程序描述IT从业者

要求:

1、设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问

2、限定IT从业人员必须年满15岁,无效信息需提示,并设置默认年龄为15。

3、工作方法通过输入参数,接收工作单位和职务,输出个人工作信息

4、编写测试类,测试IT从业者类的对象及相关方法(测试数据信息自定义)

思路:

1.这个题目之前我思考的有误,首先前面都是把属性私有化,通过set和get方法实现属性的访问。到了第三步我是在在类中写一个方法从控制台输入信息,把方法的值返回给属性,之后构造方法接收属性的值。最后调用构造方法创建对象,控制台输入值。

代码:

package com.company.day15;/*
Author:
date:
problem:
4、编写程序描述IT从业者
要求:
1、设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问
2、限定IT从业人员必须年满15岁,无效信息需提示,并设置默认年龄为15。
3、工作方法通过输入参数,接收工作单位和职务,输出个人工作信息
4、编写测试类,测试IT从业者类的对象及相关方法(测试数据信息自定义)1.在main方法中判断年龄,如果不是则提示年龄太小,不满足条件。
2.定义next()接收工作单位和职务,输出
3.调用方法*/
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;import java.util.Scanner;
public class Excel4 {private int age=15;private String method;private String methodinforma=method1();//把方法返回的值赋值给属性informapublic String getMethodinforma() {return methodinforma;}public void setMethodinforma(String methodinforma) {this.methodinforma = methodinforma;}//方法对属性的访问权限public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getMethod() {return method;}public void setMethod(String method) {this.method = method;}//3、工作方法通过输入参数,接收工作单位和职务,输出个人工作信息public String method1(){Scanner sca=new Scanner(System.in);String danwei=sca.next();String zhiwu=sca.next();String informa=danwei+" "+zhiwu;return informa;}public Excel4(String methodinforma,int age){//把属性的值传到构造方法this.methodinforma=methodinforma;this.age=age;}}

结果:输出来的值,只是构造方法传入的值,控制台中输入的值则没有被打印

原因:通过构造方法创建对象,并且赋值,而我调用方法控制台输入值,算是给属性赋默认值。构造方法的赋值有掩盖默认值(自己理解的,如有错误,请指正,感谢)

优化

把方法去掉,控制台输入放到main方法中,之后用set方法修改构造方法赋的值。

类:

package com.company.day15;/*
Author:
date:
problem:
4、编写程序描述IT从业者
要求:
1、设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问
2、限定IT从业人员必须年满15岁,无效信息需提示,并设置默认年龄为15。
3、工作方法通过输入参数,接收工作单位和职务,输出个人工作信息
4、编写测试类,测试IT从业者类的对象及相关方法(测试数据信息自定义)1.在main方法中判断年龄,如果不是则提示年龄太小,不满足条件。
2.定义next()接收工作单位和职务,输出
3.调用方法*/
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;import java.util.Scanner;
public class Excel5 {private int age=15;private String methodinforma;public String getMethodinforma() {return methodinforma;}public void setMethodinforma(String methodinforma) {this.methodinforma = methodinforma;}//方法对属性的访问权限public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Excel5(String methodinforma,int age){this.methodinforma=methodinforma;this.age=age;}}

测试:

package com.company.day15;/*
Author:
date:
problem:
4、编写程序描述IT从业者
要求:
1、设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问
2、限定IT从业人员必须年满15岁,无效信息需提示,并设置默认年龄为15。
3、工作方法通过输入参数,接收工作单位和职务,输出个人工作信息
4、编写测试类,测试IT从业者类的对象及相关方法(测试数据信息自定义)1.在main方法中判断年龄,如果不是则提示年龄太小,不满足条件。
2.定义next()接收工作单位和职务,输出
3.调用方法*/import java.util.Scanner;public class Test5 {public static void main(String[] args) {Excel4 excel4=new Excel4("aa",20);//3、工作方法通过输入参数,接收工作单位和职务,输出个人工作信息Scanner sca=new Scanner(System.in);System.out.println("单位");String danwei=sca.next();System.out.println("职务");String zhiwu=sca.next();String informa=danwei+" "+zhiwu;if(excel4.getAge()<=15){excel4.setAge(15);}excel4.setMethodinforma(informa);System.out.println(excel4.getMethodinforma());System.out.println(excel4.getAge());}
}

总结:

Java面向对象中给属性赋值的三种方法:

1.构造方法赋值。

2.set方法。

3.直接给属性赋初始值。

Java面向对象练习题相关推荐

  1. Java面向对象练习题之字母输出

    编写Java应用程序.首先,定义一个ZiMuBiao类,它有一个方法void output(int x),如果x的值是1,在控制台打印出大写的英文字母表:如果x的值是2,在 控制台打印出小写的英文字母 ...

  2. Java面向对象练习题之学生信息

    编写Java应用程序.首先,定义描述学生的类--Student,包括学号(int). 姓名(String).年龄(int)等属性:二个方法:Student(int Number,String name ...

  3. java面向对象练习题一

    1.编写一个无参方法,输出Hello. package Dongruan; public class ktlx1 { public static void main(String[] args) { ...

  4. Java面向对象练习题继承之物种

    21.编写一个Java应用程序,该程序包括3个类:Monkey类.People类和主类 E.要求: (1) Monkey类中有个构造方法:Monkey (String s),并且有个public vo ...

  5. Java面向对象练习题 企业人事管理系统

    题目: 完成一个企业人事管理系统,该系统中包含两个实体类:员工(Emp),部门(Dept),两个类中分别包含以下属性: 员工(工号,姓名,性别,职位,年龄,月薪,部门) 部门(编号,部门名,部门介绍, ...

  6. Java面向对象练习题之西游记人物

    String Name;double Height; //属性String Weapon;void printName() //方法{System.out.println("人物名称:&qu ...

  7. java面向对象上机题库_Java面向对象编程上机-练习题汇总

    Java面向对象编程上机-练习题汇总 [练习题1]类的成员变量: 猜数字游戏:一个类A有一个成员变量v,有一个初值100.定义一个类,对A类的成员变量v进行猜.如果大了则提示大了,小了则提示小了.等于 ...

  8. java面向对象 程序设计题_java面向对象程序设计练习题

    java面向对象程序设计练习题 [练习题]01.类的成员变量 猜数字游戏 一个类 A 有一个成员变量 v有一个初值100.定义一个类 对 A 类的成员变量 v 进行猜.如果大了则提示大了 小 ...

  9. java面向对象一些基本练习题6

    创建一个简单的学生信息管理系统,能够实现管理员登录,修改密码,录入教师账号和密码,录入学生账号和密码,查看个人信息,查看所有账号信息:教师登录,查看个人信息,修改密码,录入学生成绩,查询学生成绩:学生 ...

最新文章

  1. python入门教程 pdf-Python快速入门PDF高清完整版本下载
  2. Java Programming Test Question 3
  3. 7-二路归并排序C实现(递增递减的简单转换)
  4. 【渝粤教育】国家开放大学2018年春季 建筑结构基础 参考试题
  5. Oracle SGA优化
  6. hibernate学习---用Session实现CURD
  7. VC++软件授权加密与管控(附demo)
  8. ToDesk安全流畅远控软件!
  9. win98 支持html5,对“让sbpci 128在win98下支持WDM”的补充
  10. 移动通信基础(4)信道模型
  11. bzoj2286: [Sdoi2011]消耗战
  12. 12张大数据图看看2016年世界各地发生大事件!
  13. 什么是抽象类?抽象类有什么特点?举例说明抽象类及其成员的定义方法。
  14. hardcore团队misc
  15. 超详细MySQL安装教程(Windows)
  16. leetcode 跳跃游戏系列 c++
  17. 使用Python对excel中的数据进行处理
  18. C#编程学习49:将数据写入到excel中
  19. MindMaster思维导图国内版更名“亿图脑图MindMaster”国产软件加速崛起!
  20. Java关键字synchronized 使用中的 Double-Checked Locking is Broken

热门文章

  1. python朴素贝叶斯分类示例_Python实现的朴素贝叶斯分类器示例
  2. 优思学院|测量系统分析(MSA)中的偏倚和线性是什么?
  3. 高新兴与中兴通讯再合作:受让中兴物联11.43%股权
  4. Paragon Camptune X for Mac(Mac磁盘分区工具)
  5. R语言入门教程知识 第一章 R语言
  6. Saber仿真软件no active design解决方法
  7. java ip地址查询接口_java获取ip地址与网络接口的方法示例
  8. 135,137,138,139,445端口作用
  9. RPC原理(1)之深入RPC原理简介
  10. 机器学习—SVM原理及简单代码实现(matlab)