Java优化宠物系统 求代码 求注解

Java优化宠物系统 求代码 求注解,第1张

四个类:Pet Dog Penguin PetTest(测试类)

1、Pet类:

/

  宠物

  Created by LuHuan on 2017/7/27

 /

public class Pet {

    String name = "null";

    int health = 100;//健康值

    int love = 0;//亲密度

    //打印输出宠物信息

    public void print() {

        Systemoutprint("我的名字叫" +  name + ",我的健康值是:" + health + ",我和主人的亲密程度是" + love + "");

    }

    public String getName() {

        return name;

    }

    public int getHealth() {

        return health;

    }

    public int getLove() {

        return love;

    }

}

2、Dog类:

/

  狗狗类

  Created by LuHuan on 2017/7/27

 /

public class Dog extends Pet {

    String strain = "拉布拉多犬";//品种

    public String getStrain() {

        return strain;

    }

    //重写宠物的自白方法

    @Override

    public void print() {

        superprint();

        Systemoutprintln("我是一只" + strain);

    }

}

3、Penguin类:

/

企鹅类

 Created by LuHuan on 2017/7/27

/

public class Penguin extends Pet {

String sex = "Q仔";//性别

public String getSex() {

return sex;

}

//重写宠物的自白方法

@Override

public void print() {

superprint();

Systemoutprintln("我的性别是" + sex);

}

}

4、PetTest测试类:

/

  测试类

  Created by LuHuan on 2017/7/27

 /

public class PetTest {

    public static void main(String[] args) {

        Dog dog = new Dog();

        dogname = "欧欧";

        Penguin pgn = new Penguin();

        pgnname = "楠楠";

        Systemoutprintln("宠物的自白:");

        dogprint();

        Systemoutprintln("宠物的自白:");

        pgnprint();

    }

}

5、输出:

宠物的自白:

我的名字叫欧欧,我的健康值是:100,我和主人的亲密程度是0我是一只拉布拉多犬

宠物的自白:

我的名字叫楠楠,我的健康值是:100,我和主人的亲密程度是0我的性别是Q仔

Dog d=(Dog)a是将a对向强制类型转换成Dog类型的

18行写Animal a=new Dog()是不可以的,因为变量a已经在同一语句块声明了,是不可以再次声明的

12行的Anima不可以去掉,变量声明语句中数据类型不可以省略

public Static Animal get(String choice)//这句是定义一个静态方法get ,static表示该方法是静态方法, void表示方法没有返回值(在方法没有返回值时用),而该句的返回值类型是Animal (Animal是一个用户自定义的类 类似你熟知的int,string,char等), 例如public viod get(){}这个方法就没有返回值且是非静态方法 而public static string set(){}这个方法就是静态方法且返回值的string类型。请不要混淆返回值类型与static二者并非一个概念

静态与非静态:当一个函数或者一个变量前面加上static时表示该方法或变量是静态的,否则就是非静态的。java和c#一样是面向对象的语言,创建一个类后需要实例类的对象调用方法或者变量,当声明的方法或者变量时静态时就可以直接用类名调用,因为静态的是属于类所有,并非属于类的某个对象

choice是什么意思? choice是get方法的形式参数(形参)通俗一些就是个傀儡,只有这个get方法被调用的时候形参就被赋予了实参的值,才真正有了意义。例如你的例子Animal al=Storeget("dog");中调用了get方法并传递实参"dog" ,此时choice的值就是"dog","dog"与"dog"当然是俩个相等的字符串 所以程序最后输出的肯定和狗有关。如果get方法被调用时传的实参不是"dog",Animal al=Storeget("pig");此时choice值就是"pig","pig"与“dog”不是相同的字符串所以最后结果肯定和猫又关(呵呵)

if(choiceequalsIgnoreCase("dog"))是什么意思? 这是判断当get函数被调用时传递的实参是否是“dog”, java中equalsIgnoreCase是判断两个字符串是否相等它不考虑大小写,如果两个字符串的长度相等,并且两个字符串中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的。(当get被调用时choice的值就变为实参的值)

正如LS所说main 方法是java程序的入口,当程序运行时首先运行main方法中的内容 ,记住main方法的格式就行,以后你会慢慢理解main

如果还有不是很清楚的地方 百度hi我……

这回答应该通俗易懂不知lz满意否?怎么样给分吧……

这类问题主要考你接口和抽象类,多态的问题。首先要了解他们的作用,然后再出发。请打好基础,学习这门语言很重要。。。。

代码1: public interface Animal

代码2:public void playSound(){

Systemoutprintln("现在播放"+new Dog()getAnimalName()+"类的声音");

Systemoutprintln("现在播放"+new Cat()getAnimalName()+"类的声音");

}

代码3:

public void cry(){

Systemoutprintln("汪汪汪汪");

}

代码4:public String getAnimalName(){

return "狗";

}

代码5:

public void cry(){

Systemoutprintln("喵喵喵喵");

}

代码6:public String getAnimalName(){

return "猫";

}

import javautilScanner;

public class ShowDeffrentDigit {

 public static void main(String[] args) {

  // TODO Auto-generated method stub 

  Scanner input = new Scanner(Systemin);

  Systemoutprint("Enter ten numbers:");

  int[] numbers = new int[10];

  for (int i = 0; i < 10; i++) {

   numbers[i] = inputnextInt();

  }

  int z = 10;

  for (int i = 0; i < z; i++) {

   for (int j = i + 1; j < z; j++) {

    if (numbers[i] == numbers[j]) {

     for (int k = j; k < z - 1; k++) {

      numbers[k] = numbers[k + 1];

     }

     z = z - 1;

     j = j - 1;

    }

   }

  }

  Systemoutprintln("The number of distinct number is " + z);

  Systemoutprint("The distinct numbers are:");

  for (int i = 0; i < z; i++) {

   Systemoutprint(numbers[i] + " ");

  }

 }

}

IOC(Inverse of Control):控制反转。

1、本来程序使用哪一个bean是在程序中指定(由程序员具体指定),而使用Spring以后我们将具体的配置写在xml中,由xml来控制;

2、本来类的实例化需要通过new XX() 来实例化一个对象,现在通过spring容器来帮忙实例化类的对象

欢迎分享,转载请注明来源:表白网

原文地址:https://h5.hunlipic.com/biaobai/3052677.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2024-02-01
下一篇2024-02-01

发表评论

登录后才能评论

评论列表(0条)

    保存