案例讲解
(1)设计一个User类,其中包括用户名、口令等属性以及构造方法(至少重载2个)。获取和设置口令的方法,显示和修改用户名的方法等。编写应用程序测试User类。
public class OOPDemo01 { public static void main(String[] args) { User u = new User("张三","231"); System.out.println(u.getUserName()); System.out.println(u.getPassword()); } } class User{ public String userName; public String password; public User() { } public User(String userName, String password) { this.userName = userName; this.password = password; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
(2)定义一个Student类.其中包括用户名、密码、姓名、性别、出生年月等属行以及init)——初始化各属性、display()——显示各属性、modify()——修改姓名等方法。实现并测试这个类。
public class OOPDemo02 { public static void main(String[] args) { Student s = new Student(); s.init("芜湖","123","张三","男","12350"); s.display(); s.modify("李四"); s.display(); } } class Student{ private String userName; private String passWord; private String name; private String gender; private String birth; public void display() { System.out.println("userName='" + this.userName + '\'' + ", passWord='" + this.passWord + '\'' + ", name='" + this.name + '\'' + ", gender='" + this.gender + '\'' + ", birth='" + this.birth + '\''); } public void init(String userName, String passWord, String name, String gender, String birth) { this.userName = userName; this.passWord = passWord; this.name = name; this.gender = gender; this.birth = birth; } public void modify(String name){ this.name = name; } }
(3)从上题的Student类中派生出Granduate(研究生)类,添加属性:专业subject、导师adviser。重载相应的成员方法。并测试这个类。
public class OOPDemo02 { public static void main(String[] args) { Granduate g = new Granduate(); g.init("芜湖","123","张三","男","12350","电子专业","*****"); g.display(); g.modify("aaq"); g.display(); } } class Student{ public String userName; public String passWord; public String name; public String gender; public String birth; public void display() { System.out.println("userName='" + this.userName + '\'' + ", passWord='" + this.passWord + '\'' + ", name='" + this.name + '\'' + ", gender='" + this.gender + '\'' + ", birth='" + this.birth + '\''); } public void init(String userName, String passWord, String name, String gender, String birth) { this.userName = userName; this.passWord = passWord; this.name = name; this.gender = gender; this.birth = birth; } public void modify(String name){ this.name = name; } } class Granduate extends Student{ public String subject; public String adviser; /* 重载的init方法实现子类成员变量的初始化和父类中的成员变量的初始化操作 */ public void init(String userName, String passWord, String name, String gender, String birth,String subject,String adviser) { super.init(userName, passWord, name, gender, birth); this.subject = subject; this.adviser = adviser; } public void display() { System.out.println("userName='" + this.userName + '\'' + ", passWord='" + this.passWord + '\'' + ", name='" + this.name + '\'' + ", gender='" + this.gender + '\'' + ", birth='" + this.birth + '\''+ ", subject='" + this.subject + '\'' + ", adviser='" + this.adviser + '\''); } }
(4)编写一个汽车类Car
编写一个宝马类BMW继承Car
编写一个奔驰类Benz继承Car
在三个类中都有一个run方法,表示不同车在跑
编写一个人类Person,不同的对象有不同的车
public class OOPDemo03 { public static void main(String[] args) { Car c = new Car(); BMW b = new BMW(); Benz z = new Benz(); Person per = new Person(c); Person per1 = new Person(b); Person per2 = new Person(z); } } class Car{ public void run(){ System.out.println("汽车在跑..."); } } class BMW extends Car{ @Override public void run() { System.out.println("宝马车在跑中..."); } } class Benz extends Car{ @Override public void run() { System.out.println("奔驰车在跑中...."); } } /* 不同的对象有不同的车 */ class Person{ public Car car; public Person(Car car){ this.car=car; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix