面向对象代码练习

代码练习一:

1,设计出英雄这种类

类名:Hreo

英雄有如下属性: 

名字 name,类型是字符串String

血量 hp,类型是浮点型float

护甲 armor,类型是浮点型float

移动速度 moveSpeed,类型是整型 int

创建(实例化)2个英雄
面向对象代码练习_第1张图片

/**
 *面向对象实例(一)
 */
 //定义‘英雄’类
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
}

代码练习六:

 

 

 

 

 

 

你可能感兴趣的:(java)