3. java面向对象练习

动物类创建练习

定义猫类Cat:
属性:毛的颜色color,品种breed
行为:吃饭eat(),抓老鼠catchMouse()
定义狗类Dog:
属性:毛的颜色color,品种breed
行为:吃饭eat(),看家lookHome()

要求:

1. 按照以上要求定义Cat类和Dog类,属性要私有,生成空参、有参构造,set和get方法
2. 定义测试类,在main方法中创建该类的对象并给属性赋值(set方法或有参构造方法)
3. 调用成员方法,打印格式如下:
   花色的波斯猫正在吃鱼....
   花色的波斯猫正在逮老鼠...
   黑色的藏葵正在啃骨头....
   黑色的藏葵正在看家...

训练提示:
1.类中的属性就是成员变量,类中的行为功能就是成员方法。
2.成员变量要被private修饰。

解题方案操作步骤

1.定义猫类,定义成员变量,构造方法,set和get方法,吃饭方法eat(),抓老鼠方法catchMouse(),方法中根据题目给出的格式输出成员变量的值。

/* 		    @Title: Cat.java		
  *			@date 2022-10-27 11:06:18 		
  * 		@author Long Yongchuan
  */
package code.working;

public class Cat {
    private String color;
    private String bread;

    // 无参构造器
    public Cat() {

    }

    // 有参构造方法
    public Cat(String color, String bread) {
        this.color = color;
        this.bread = bread;
    }

    // 设置color的get,set方法
    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    // 设置bread的get,ste方法
    public String getBread() {
        return bread;
    }

    public void setBread(String bread) {
        this.bread = bread;
    }

    // 设置行为方法
    public void eat() {
        System.out.println(getColor() + getBread() + "正在吃鱼.....");
    }

    public void catchMouse() {
        System.out.println(getColor() + getBread() + "正在逮老鼠.....");
    }
}

2.定义狗类,定义成员变量,构造方法,set和get方法,吃饭方法eat(),看家方法lookHome(),方法中根据题目给出的格式输出成员变量的值。

/* 		    @Title: CatDog_Test.java		
  *			@date 2022-10-27 11:23:10		
  * 		@author Long Yongchuan
  */

package code.working;

public class Dog {
    private String color;
    private String bread;

    // 无参构造器
    public Dog() {

    }

    // 有参构造方法
    public Dog(String color, String bread) {
        this.color = color;
        this.bread = bread;
    }

    // 设置color的get,set方法
    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    // 设置bread的get,ste方法
    public String getBread() {
        return bread;
    }

    public void setBread(String bread) {
        this.bread = bread;
    }

    // 设置行为方法
    public void eat() {
        System.out.println(getColor() + getBread() + "正在啃骨头.....");
    }

    public void lookHome() {
        System.out.println(getColor() + getBread() + "正在看家.....");
    }
}

3.在测试类中使用有参构造创建猫类对象,调用eat()方法和catchMouse()方法。

4.在测试类中使用有参构造创建狗类对象,调用eat()方法和lookHome()方法。

/* 		    @Title: CatDog_Test.java		
  *			@date 2022-10-27 11:30:03 		
  * 		@author Long Yongchuan
  */

package code.working;

public class CatDog_Test {
    public static void main(String[] args) {
        Cat cat = new Cat();
        cat.setColor("花色的");
        cat.setBread("波斯猫");
        cat.eat();
        cat.catchMouse();

        Dog dog = new Dog();
        dog.setColor("黑色的");
        dog.setBread("藏獒");
        dog.eat();
        dog.lookHome();
    }
}
  • 运行结果
    在这里插入图片描述

学生类创建遍历集合(按学号查找)

后台程序需要存储学生信息并展示,然后要提供按照学号搜索学生信息的功能

要求:

①定义Student类,定义ArrayList集合存储如上学生对象信息,并遍历展示出来
②提供一个方法,可以接收ArrayList集合,和要搜索的学号,返回搜索到的学生对象信息,并展示
③使用死循环,让用户可以不停的搜索

解题方案操作步骤

  1. 创建学生对象,提供get,set方法
/* 		@Title: Student.java		
 *			@date 2022-11-04 10:54:35 		
 * 		@author Long Yongchuan
 */

package workSpace.cn;

/**
 * @ClassName Student
 * @author Long Yongchuan
 */

public class Student {
	private String num;
	private String name;
	private int age;
	private String gender;
	private String grade;

	public Student() {

	}

	public Student(String num, String name, int age, String gender, String grade) {
		super();
		this.num = num;
		this.name = name;
		this.age = age;
		this.gender = gender;
		this.grade = grade;
	}
	public String getNum() {
		return num;
	}

	public void setNum(String num) {
		this.num = num;
	}

	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 String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public String getGrade() {
		return grade;
	}

	public void setGrade(String grade) {
		this.grade = grade;
	}
}
  1. 创建测试类–>创建集合并添加对象–>定义对比方法–>遍历查询
/* 		@Title: Working_06.java		
 *			@date 2022-11-04 10:53:43 		
 * 		@author Long Yongchuan
 */

package workSpace.cn;

import java.util.ArrayList;
import java.util.Scanner;


/**
 * @ClassName Working_06
 * @author Long Yongchuan
 */

public class Working_06 {

	public Working_06() {

	}

	// @MethodName: main
	public static void main(String[] args) {
		// 创建集合对象(学生)
		ArrayList<Student> students = new ArrayList<>();
		// 添加学生对象到集合中
		students.add(new Student("202201", "李华", 18, "男", "大一年级"));
		students.add(new Student("202202", "张硕", 20, "男", "大二年级"));
		students.add(new Student("202203", "王言", 20, "女", "大三年级"));

		// 遍历集合
		System.out.println("学号\t\t姓名\t\t年龄\t\t性别\t\t年级\t\t");
		for (int i = 0; i < students.size(); i++) {
			Student student = students.get(i);
			System.out.println(student.getNum() + "\t\t" + 
			student.getName() + "\t\t" + student.getAge() + "\t\t" + 
		    student.getGender() + "\t\t" + student.getGrade());
		}
		while(true) {
			Scanner scanner = new Scanner(System.in);
			System.out.println("请输入学生6位数学号:");
			// 信息查询
			String input_num = scanner.next();
			Student student = queryStudentByNum(students, input_num);
			if (student == null) {
				System.out.println("该学号不存在!");
			} else {
				System.out.println("学号:" + student.getNum() + "	姓名:" + student.getName() + 
						"	年龄:" + student.getAge() + "	性别:" + student.getGender()  + 
						"	年级:" + student.getGrade());
				break;
			}
		}
		
	}
	
	// 定义方法根据学号查询
	public static Student queryStudentByNum(ArrayList<Student> students, String num) {
		for (int i = 0; i < students.size(); i++) {
			Student student = students.get(i);
			if (student.getNum().equals(num)) {
				return student;
			}
		}
		return null;
	}
}
  • 运行结果
    在这里插入图片描述
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一半不眠次日si记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值