四个类: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容器来帮忙实例化类的对象
欢迎分享,转载请注明来源:表白网
评论列表(0条)