java——面向对象

类:就像一个模板 类里面的“对象”具有共同状态、属性;

属性名臣一般来说都是小写。

若有多个单词组成,后面的单词的第一个字母大写。

e.g.prettyBaby

对象:包含某种特性的个体(创建对象——实例化);

注意点:

//类名与java文件名要相同

———————————————————————————————————————————

一、格式:

1.设计类Hero;

public class Item {
    String name;
    int price;
}

2.创建对象;

 
  
public class Item {//类名Item
    String name;
    int price;//创建属性;

    public static void main(String[] args) {
        Item potion = new Item();//在Item类中创建新对象potion;
        potion.name = "血瓶";//对象+.属性 创建属性
        potion.price = 50;

        Item shoe = new Item();//类似
        shoe.name = "草鞋";
        shoe.price = 300;

        Item sword = new Item();
        sword.name = "长剑";
        sword.price = 350;
    }
}

二、方法

有类名、属性,还可以设计对应属性的一些“专属能动特性”——能做什么、有什么.....

//这里的方法可以对应到c、python中的函数;

命名:

方法是一个类的动作行为,所以一般都是以动词开头的,比如 keng ...如果有多个单词,后面的每个单词的第一个字母使用大写,比如 addSpeed;

e.g.


    //坑队友
    void keng(){
        System.out.println("坑队友!");
    }

    //获取护甲值
    float getArmor(){
        return armor;
    }
    
    //增加移动速度
    void addSpeed(int speed){
        //在原来的基础上增加移动速度
        moveSpeed = moveSpeed + speed;
    }

三、练习

为英雄类Hero设计几个新的方法:
1. 超神 legendary(),无参数,无返回类型
2. 获取当前的血量 getHp(), 无参数,有float类型的返回值
3. 回血 recovery(float blood), 有参数 float类型参数 blood表示本次恢复的血量,无返回类型

package com.my.Item;
//面向对象
public class Item {
    String name;
    float hp;
    float armor;
    int movespeed;

    //创建“坑队友”这一方法
    void keng(){
        System.out.println("坑队友");
    }

    //创建"获取护甲值"这一方法(将要返回护甲值这一浮点型变量)
    float getArmor(){
        return armor;
    }

    //创建“增加移动速度”这一方法,其中有整型参数speed
    void addSpeed(int speed){
        //在原来的基础上增加移动速度;
        movespeed  += speed;
    }
    //超神
    void legendary(){
        System.out.println("超神!");
    }

    //获取当前血量
    float getHp(){
        return hp;
    }

    //回血
    void recoverery(float blood){
        hp += blood;
    }

    public static void main(String[] args) {
       Item hero = new Item();
       hero.name = "Simon";
       hero.movespeed = 350;
       hero.hp = 1000;
       hero.armor = 500;
       System.out.printf(hero.name + "当前的血量是:" + hero.hp + "\n");
       System.out.println(hero.name + "当前的速度是" + hero.movespeed);
        System.out.println("回血ing");
       hero.recoverery(100);
       System.out.println("现在的血量是:" + hero.hp);
       hero.addSpeed(600);
       System.out.println("目前的移动速度为" + hero.movespeed);
       hero.legendary();
       System.out.printf("目前的护甲值是" + hero.getArmor());

    }
}
/*创建对象的一个例子*/
public class Item{
    //构造方法? 与普通方法的异同?
    //在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
    public Item(String name){
        //这个构造器仅有一个参数:name
        System.out.println("小狗的名字是 : " + name );
    }
    public static void main(String[] args){
        // 下面的语句将创建一个Puppy对象
        Item myPuppy = new Item( "tommy" );
    }
}

/*创建对象的第二个例子*/

public class Item{

    int ItemAge;
    //
    public Item(String name){
        System.out.println("小狗的名字是:" + name);
    }
    //获取年龄值
    public void setAge(int age){
        ItemAge = age; //开辟一个ItemAge对象 在后续可以进行值返回与引用
    }
    //输出年龄值
    public int getAge(){
        System.out.println("小狗的年龄是" + ItemAge);
        return ItemAge;
    }
    //主方法
    public static void main(String[] args) {
        //创建对象
        Scanner s = new Scanner(System.in);
        System.out.println("请输入小狗的姓名:");
        String name = s.nextLine();

        //通过setAge来设定小狗的年龄——对象名+.+方法名
        System.out.println("请输入小狗的年龄");
        int Age = s.nextInt();

        //输出小狗的信息
        Item puppy = new Item(name);
        puppy.setAge(Age);
        puppy.getAge();

        System.out.println("变量值" + puppy.ItemAge);


    }
}
 
  

你可能感兴趣的:(java)