1,设计出英雄这种类
类名:Hreo
英雄有如下属性:
名字 name,类型是字符串String
血量 hp,类型是浮点型float
护甲 armor,类型是浮点型float
移动速度 moveSpeed,类型是整型 int
创建(实例化)2个英雄
/**
*面向对象实例(一)
*/
//定义‘英雄’类
public class Hero {
//定义‘英雄’属性(成员变量)
String name;//英雄名称
float hp;//英雄血量
float armor;//英雄护甲
int moveSpeed;//英雄移动速度
public static void main(String[] args){
//类就像一个模板,根据这样一个模板,可以创建一个个的具体的英雄
//一个个具体的英雄,就叫一个个的对象
//new Hero() 就是java中创建一个英雄对象的意思
Hero garen = new Hero();
garen.name = "盖伦";
garen.hp = 616;
garen.armor = 27;
garen.moveSpeed = 350;
Hero teemo = new Hero();
teemo.name = "提莫";
teemo.hp = 383;
teemo.armor = 14;
teemo.moveSpeed = 330;
//打印测试一下:
System.out.println("第一个英雄名叫:"+garen.name +",血量为: "+garen.hp+",护甲为:"+garen.armor+",移动速度为:"+garen.moveSpeed);
System.out.println("第二个英雄名叫:"+teemo.name +",血量为:"+teemo.hp+",护甲为:"+teemo.armor+",移动速度为:"+teemo.moveSpeed);
//Java 对大小写特别敏感,写代码时尤其注意
}
//运行结果:
//第一个英雄名叫:盖伦,血量为: 616.0,护甲为:27.0,移动速度为:350
//第二个英雄名叫:提莫,血量为:383.0,护甲为:14.0,移动速度为:330
}
2,增加属性
送了多少次
杀人次数
助攻次数
金钱
补刀数
攻击速度
杀人后说的话
被杀后说的话
//增加属性
int death;//送了多少次
int kill;//杀人次数
int assist;//助攻次数
long money;//金钱
int lastHit;//补刀数
int attackSpeed;//攻击速度
String killWord;//杀人后说的话
String deathWord;//被杀后说的话
3,为英雄类Hero设计几个新的方法:
1. 超神 legendary(),无参数,无返回类型
2. 获取当前的血量 getHp(), 无参数,有float类型的返回值
3. 回血 recovery(float blood), 有参数 float类型参数 blood表示本次恢复的血量,无返回类型
//为英雄类Hero设计几个新的方法:
//1. 超神 legendary(),无参数,无返回类型
void legendary(){
}
//2. 获取当前的血量 getHp(), 无参数,有float类型的返回值
float getHp(){
return hp;
}
//3. 回血 recovery(float blood), 有参数 float类型参数 blood表示本次恢复的血量,无返回类型
void recovery(float blood){
}
整体代码:
/**
* 面向对象实例(一)
*/
//定义‘英雄’类
public class Hero {
//定义‘英雄’属性(成员变量)
String name;//英雄名称
float hp;//英雄血量
float armor;//英雄护甲
int moveSpeed;//英雄移动速度
//增加属性
int death;//送了多少次
int kill;//杀人次数
int assist;//助攻次数
long money;//金钱
int lastHit;//补刀数
int attackSpeed;//攻击速度
String killWord;//杀人后说的话
String deathWord;//被杀后说的话
//为英雄类Hero设计几个新的方法:
//1. 超神 legendary(),无参数,无返回类型
void legendary(){
}
//2. 获取当前的血量 getHp(), 无参数,有float类型的返回值
float getHp(){
return hp;
}
//3. 回血 recovery(float blood), 有参数 float类型参数 blood表示本次恢复的血量,无返回类型
void recovery(float blood){
}
public static void main(String[] args){
//类就像一个模板,根据这样一个模板,可以创建一个个的具体的英雄
//一个个具体的英雄,就叫一个个的对象
//new Hero() 就是java中创建一个英雄对象的意思
Hero garen = new Hero();
garen.name = "盖伦";
garen.hp = 616;
garen.armor = 27;
garen.moveSpeed = 350;
Hero teemo = new Hero();
teemo.name = "提莫";
teemo.hp = 383;
teemo.armor = 14;
teemo.moveSpeed = 330;
//打印测试一下:
System.out.println("第一个英雄名叫:"+garen.name +",血量为: "+garen.hp+",护甲为:"+garen.armor+",移动速度为:"+garen.moveSpeed);
System.out.println("第二个英雄名叫:"+teemo.name +",血量为:"+teemo.hp+",护甲为:"+teemo.armor+",移动速度为:"+teemo.moveSpeed);
}
//结果:
//第一个英雄名叫:盖伦,血量为: 616.0,护甲为:27.0,移动速度为:350
//第二个英雄名叫:提莫,血量为:383.0,护甲为:14.0,移动速度为:330
}
设计出物品这种类
类名:Item
物品有如下属性:
名字 name 类型是字符串String
价格 price 类型是整型 int
创建(实例化)3件具体物品
名称 价格
血瓶 50
草鞋 300
长剑 350
/**
* 面向对象实例(二)
*/
public class Item {
//定义变量
String name;//商品名字
int price;//商品价格
public static void main(String[] args){
//面向对象的特征:一切都是对象,都可以new出来
//下面new出3个具体物品
//错误:因为没有定义有参构造方法,所以不可以使用下面的方式
//Item xuepin = new Item("血瓶",50);
//Item caoxie = new Item("草鞋",300);
//Item changjian = new Item("长剑",350);
//改正为:
Item xuepin = new Item();
xuepin.name = "血瓶";
xuepin.price = 50;
Item caoxie = new Item();
caoxie.name = "草鞋";
caoxie.price = 300;
Item changjian = new Item();
changjian.name = "长剑";
changjian.price = 350;
//打印测试一下
System.out.println("第一件物品的名称是 : "+xuepin.name+",价格为: "+xuepin.price);
System.out.println("第二件物品的名称是 : "+caoxie.name+",价格为: "+caoxie.price);
System.out.println("第三件物品的名称是 : "+changjian.name+",价格为: "+changjian.price);
}
//运行结果:
//第一件物品的名称是 : 血瓶,价格为: 50
//第二件物品的名称是 : 草鞋,价格为: 300
//第三件物品的名称是 : 长剑,价格为: 350
}
猜数字游戏一个类A有一个成员变量v有一个初值100。定义一个类对A类的成员变量v进行猜。如果大了则提示大了小了则提示小了。等于则提示猜测成功。
public class A {
int v = 100;
}
import java.util.Scanner;
/**
* 【练习题】类的成员变量
* 猜数字游戏一个类A有一个成员变量v有一个初值100。定义一个类对A类的成员变量v进行猜。如果大了则提示大了小了则提示小了。等于则提示猜测成功。
*/
public class GuessNumber {
public static void main(String[] args){
A a = new A();
Scanner scanner = new Scanner(System.in);
System.out.println("请猜测数字:");
int v2 = scanner.nextInt();
if(a.v > v2){
System.out.println("你猜测的数字小了。");
}else if(a.v < v2){
System.out.print("你猜测的数字大了。");
}else{
System.out.print("你猜测的数字与所给数字相等。");
}
//结果:
//请猜测数字:
//50
//你猜测的数字小了。
//请猜测数字:
//150
//你猜测的数字大了。
//请猜测数字:
//100
//你猜测的数字与所给数字相等。
}
}
类的成员变量
请定义一个交通工具(Vehicle)的类其中有: 属性速度(speed)体积(size)等等 方法移动(move())设置速度(setSpeed(int speed))加速speedUp(),减速speedDown()等等.
最后在测试类Vehicle中的main()中实例化一个交通工具对象并通过方法给它初始化speed,size的值并且通过打印出来。另外调用加速减速的方法对速度进行改变。
public class Vehicle {
int speed;
String name;
void move(){
}
int setSpeed(int speed){
return speed;
}
int speedUp(){
return speed + 20;
}
int speedDown(){
return speed - 5;
}
}
/**
* 【练习题】类的成员变量
* 请定义一个交通工具(Vehicle)的类其中有: 属性速度(speed)体积(size)等等 方法移动(move())设置速度(setSpeed(int speed))加速speedUp(),减速speedDown()等等.
* 最后在测试类Vehicle中的main()中实例化一个交通工具对象并通过方法给它初始化speed,size的值并且通过打印出来。另外调用加速减速的方法对速度进行改变。
*/
public class VehicleTest {
public static void main(String[] args){
Vehicle v = new Vehicle();
v.name = "自行车";
System.out.println(v.name+"的速度为:"+v.setSpeed(16)+"km/h");
System.out.println("加速后为:"+v.speedUp()+"km/h");
System.out.println("减速后为:"+v.speedDown()+"km/h");
}
//运行结果:
//自行车的速度为:16km/h
//加速后为:36km/h
//减速后为:11km/h
}
在程序中经常要对时间进行操作但是并没有时间类型的数据。那么我们可以自己实现一个时间类来满足程序中的需要。
定义名为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) 分别对时、分、秒进行加减运算。
/**
* 【练习题】类的成员变量与方法、构造方法
* 在程序中经常要对时间进行操作但是并没有时间类型的数据。那么我们可以自己实现一个时间类来满足程序中的需要。
* 定义名为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) 分别对时、分、秒进行加减运算。
*/
//时间工具类
public class MyTime {
private int hour;
private int minute;
private int second;
//错误,定义有参构造方法时,指名参数做什么
//void MyTime(int hour,int minute,int second){
//}
//正确定义有参构造方法
public MyTime(int hour, int minute, int second) {
this.hour = hour;
this.minute = minute;
this.second = second;
}
//类似于toString()方法
String diaplay(){
return hour+":"+minute+":"+second;
}
int addSecond(int sec){
return second + sec;
}
int addMinute(int min){
return minute + min;
}
int addHour(int hou){
return hour + hou;
}
int subSecond(int sec){
return second - sec;
}
int subMinute(int min){
return minute - min;
}
int subHour(int hou){
return hour - hou;
}
}
/**
* 对时间工具类的测试类
*/
public class MyTimeTest {
//测试时,只是测试一下加减运算,没有考虑hour<=24,minute<=60,second<=60
public static void main(String[] args){
MyTime mt = new MyTime(13,57,25);
System.out.println("输出时间为:"+mt.diaplay());
System.out.println("计算后的时间为:"+mt.addHour(2)+":"+mt.subMinute(10)+":"+mt.addSecond(4));
}
//运行结果:
//输出时间为:13:57:25
//计算后的时间为:15:47:29
}