java面向对象练习
一、类与对象
运用类与对象相关知识写一下内容:
基本思路:写一个宠物类(Pet),定义方法,写具体内容,再写一个测试类(petTest),在测试类实例化Pet类对象,并调用它的方法
Pet类
public class Pet {
String str1, str2,str;
public Pet() {
System.out.println("欢迎您来到宠物店!");
System.out.println("请输入要领养宠物的名字");
Scanner sc = new Scanner(System.in);
str = sc.next();
System.out.println("请输入要领养的宠物类型:(1.狗狗2.企鹅)");
int m = sc.nextInt();
switch (m) {
case 1:
str1 = "狗狗";
System.out.println("请选择狗狗的品种:(1.聪明的拉布拉多2.酷酷的雪娜瑞)");
int n = sc.nextInt();
switch (n) {
case 1:
str2 = "聪明的拉布拉多";
break;
case 2:
str2 = "酷酷的雪娜瑞";
break;
}
break;
case 2:
str1 = "企鹅";
System.out.println("请选择企鹅的品种:(1.Q仔 2.Q妹");
int x = sc.nextInt();
switch (x) {
case 1:
str2 = "Q仔";
break;
case 2:
str2 = "Q妹";
break;
}
break;
}
}
public void say(){
System.out.println("我的名字是"+str+",健康值是100,和主人亲密度是0,我是一只"+str2);
}
}
PetTest测试类
public class PetTest {
public static void main(String[] args) {
Pet pe=new Pet();
pe.say();
}
}
二、类的继承
1.运用继承方法写以下内容。
)
小狗类和企鹅类都有相同的方法,属性。由此创建一个父类(Pet类),用来存放相同的方法属性。
public class Pet {
String name;
int heathnumber=100;
int qimidu=0;
public void duBai(){
System.out.println("我的名字是"+name+"健康值是"+heathnumber+",亲密度是"+qimidu);
}
}
Dog类有品种属性,QIE类有性别属性,继承并调用父类方法,属性。
import java.util.Scanner;
public class Dog extends Pet{
String type;
public void ppet(String nam){
Scanner sc=new Scanner(System.in);
name=nam;
System.out.println("请选择狗狗的品种:(1.聪明的拉布拉多2.酷酷的雪娜瑞)");
int n = sc.nextInt();
switch (n) {
case 1:
type = "聪明的拉布拉多";
break;
case 2:
type = "酷酷的雪娜瑞";
break;
}
duBai();
}
}
import java.util.Scanner;
public class QIE extends Pet{
String sex;
public void qqe(String nam){
Scanner sc=new Scanner(System.in);
name=nam;
System.out.println("请选择企鹅的品种:(1.Q仔 2.Q妹");
int x = sc.nextInt();
switch (x) {
case 1:
sex = "Q仔";
break;
case 2:
sex = "Q妹";
break;
}
super.duBai();//super可省
}
}
测试类
import java.util.Scanner;
public class PetTest {
public static void main(String[] args) {
System.out.println("欢迎来到宠物店");
Scanner sc = new Scanner(System.in);
System.out.println("请输入宠物名字");
Pet st = new Pet();
String name = sc.next();
System.out.println("请输入要领养的宠物类型:(1.狗狗2.企鹅)");
int number = sc.nextInt();
if (number == 1) {
Dog dog = new Dog();
dog.ppet(name);
} else {
QIE qe = new QIE();
qe.qqe(name);
}
}
}
三、运用继承、封装、重写等方法写
具体分析写在代码注释里面了。
public class PetTest {
public static void main(String[] args) {
// 实例化cat对象并调用eat()方法,通过setAge()方法传入2岁这个值,
//通过setName()方法传入加菲猫这个值。dog同理
Cat cat = new Cat();
cat.setAge(2);
cat.setName("加菲猫");
cat.eat();
Dog dog = new Dog();
dog.setAge(2);
dog.setName("旺财");
dog.eat("葡萄");
}
}
public class Pet {
private String name;
private int age;
/* 当用private封装name,age属性时,不能在其他类直接调用,而需要用到Getter和Setter方法
可鼠标右键gernerate-->Getter and Setter-->选中name和age两属性,点击ok
自动生成Getter和Setter方法*/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void eat(){
System.out.println(name+"今年多少岁? "+this.age+"岁了,喜欢");
}
}
public class Cat extends Pet{
/*重写父类eat()方法,调用getName、getAge方法,得到值name和age*/
public void eat(){
System.out.println(super.getName()+"今年多少岁? "+super.getAge()+"岁了,宠物吃饭");
}
}
public class Dog extends Pet{
/*重写父类eat()方法,调用getName、getAge方法,得到值name和age*/
public void eat(String food){
System.out.println(super.getName()+"今年多少岁? "+super.getAge()+"岁了,喜欢"+food);
}
}