正文
java面向对象代码经典 java面向对象基础知识
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
经典面向对象题,用Java做,要详细点的。
package local.tea;
import local.tea.Tea.Flavor;
public class InfuseMan extends TTobj {
public InfuseMan(String name) {
super(name);
}
public void takeTea(Flavor flavor, TeacupTray tt) {
tt.setTea(new Tea(flavor));
System.out.println(name + " 沏了一杯 " + flavor );
TeaStall.releaseInfuseMan(this);
}
}
package local.tea;
public class TTobj {
protected String name;
public TTobj(String name) {
this.name = this.getClass().getSimpleName() + name;
}
}
package local.tea;
public class Tea {
public static enum Flavor {
西湖龙井, 洞庭碧螺春, 白毫银针, 君山银针, 黄山毛峰, 武夷岩茶, 安溪铁观音, 信阳毛尖, 庐山云雾, 六安瓜片
}
private Flavor flavor;
public Tea(Flavor flavor) {
this.setFlavor(flavor);
}
public void setFlavor(Flavor flavor) {
this.flavor = flavor;
}
public Flavor getFlavor() {
return flavor;
}
}
package local.tea;
public class TeaClient extends TTobj implements Runnable {
Tea.Flavor favoriteFlavor = Tea.Flavor.六安瓜片;
public TeaClient(String string) {
super(string);
System.out.println(this.name + " 大驾光临");
}
public TeaClient(String name, Tea.Flavor flavor) {
this(name);
favoriteFlavor = flavor;
}
@Override
public void run() {
Tea tea = null;
Waiter waiter = null;
try {
System.out.println(name + " 小二!沏杯茶!" + favoriteFlavor);
waiter = TeaStall.takeWaiter();
waiter.takeOrder(favoriteFlavor);
tea = waiter.takeTea();
} catch (InterruptedException e) {
System.out.println(name + " 没人理我啊!我愤然离开!" + e.getStackTrace());
return;
}
System.out.println(name + " 品尝并称赞着 " + tea.getFlavor());
if (waiter != null) {
waiter.release();
}
System.out.println(name + " 我走啦~");
}
}
package local.tea;
public class TeaMenu {
Tea tea;
}
package local.tea;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
public class TeaStall {
private static String name = "有家茶庄";
public static final int CLIENT_MAX_NUM = 5;
private static BlockingQueueInfuseMan infuseMen = new ArrayBlockingQueueInfuseMan(
1);
private static BlockingQueueWaiter waiters = new ArrayBlockingQueueWaiter(
1);
/**
* @param args
*/
public static void main(String[] args) {
waiters.add(new Waiter("【小二张】"));
infuseMen.add(new InfuseMan("【烹煮沏】"));
System.out.println(name + " 开门啦");
new Thread(new TeaClient("【梁朝伟】")).start();
new Thread(new TeaClient("【刘嘉玲】", Tea.Flavor.武夷岩茶)).start();
System.out.println(name + " 打烊啦");
}
public static Waiter takeWaiter() throws InterruptedException {
return waiters.take();
}
public static void releaseWaiter(Waiter waiter) {
waiters.add(waiter);
}
public static InfuseMan takeInfuseMan() throws InterruptedException {
return infuseMen.take();
}
public static void releaseInfuseMan(InfuseMan im) {
infuseMen.add(im);
}
}
package local.tea;
public class Waiter extends TTobj {
public Waiter(String name) {
super(name);
}
Tea.Flavor order;
TeacupTray tt = new TeacupTray();
public void takeOrder(Tea.Flavor order) throws InterruptedException {
this.order = order;
System.out.println(name + " 这位爷您点了 " + order);
TeaStall.takeInfuseMan().takeTea(this.order, tt);
}
public Tea takeTea() {
System.out.println(name + " 茶来啦 ");
return tt.getTea();
}
public void release() {
TeaStall.releaseWaiter(this);
}
}
class TeacupTray {
private Tea tea;
public Tea getTea() {
return tea;
}
public void setTea(Tea tea) {
this.tea = tea;
}
}package local.tea;
import local.tea.Tea.Flavor;
public class InfuseMan extends TTobj {
public InfuseMan(String name) {
super(name);
}
public void takeTea(Flavor flavor, TeacupTray tt) {
tt.setTea(new Tea(flavor));
System.out.println(name + " 沏了一杯 " + flavor );
TeaStall.releaseInfuseMan(this);
}
}
package local.tea;
public class TTobj {
protected String name;
public TTobj(String name) {
this.name = this.getClass().getSimpleName() + name;
}
}
package local.tea;
public class Tea {
public static enum Flavor {
西湖龙井, 洞庭碧螺春, 白毫银针, 君山银针, 黄山毛峰, 武夷岩茶, 安溪铁观音, 信阳毛尖, 庐山云雾, 六安瓜片
}
private Flavor flavor;
public Tea(Flavor flavor) {
this.setFlavor(flavor);
}
public void setFlavor(Flavor flavor) {
this.flavor = flavor;
}
public Flavor getFlavor() {
return flavor;
}
}
package local.tea;
public class TeaClient extends TTobj implements Runnable {
Tea.Flavor favoriteFlavor = Tea.Flavor.六安瓜片;
public TeaClient(String string) {
super(string);
System.out.println(this.name + " 大驾光临");
}
public TeaClient(String name, Tea.Flavor flavor) {
this(name);
favoriteFlavor = flavor;
}
@Override
public void run() {
Tea tea = null;
Waiter waiter = null;
try {
System.out.println(name + " 小二!沏杯茶!" + favoriteFlavor);
waiter = TeaStall.takeWaiter();
waiter.takeOrder(favoriteFlavor);
tea = waiter.takeTea();
} catch (InterruptedException e) {
System.out.println(name + " 没人理我啊!我愤然离开!" + e.getStackTrace());
return;
}
System.out.println(name + " 品尝并称赞着 " + tea.getFlavor());
if (waiter != null) {
waiter.release();
}
System.out.println(name + " 我走啦~");
}
}
package local.tea;
public class TeaMenu {
Tea tea;
}
package local.tea;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
public class TeaStall {
private static String name = "有家茶庄";
public static final int CLIENT_MAX_NUM = 5;
private static BlockingQueueInfuseMan infuseMen = new ArrayBlockingQueueInfuseMan(
1);
private static BlockingQueueWaiter waiters = new ArrayBlockingQueueWaiter(
1);
/**
* @param args
*/
public static void main(String[] args) {
waiters.add(new Waiter("【小二张】"));
infuseMen.add(new InfuseMan("【烹煮沏】"));
System.out.println(name + " 开门啦");
new Thread(new TeaClient("【梁朝伟】")).start();
new Thread(new TeaClient("【刘嘉玲】", Tea.Flavor.武夷岩茶)).start();
System.out.println(name + " 打烊啦");
}
public static Waiter takeWaiter() throws InterruptedException {
return waiters.take();
}
public static void releaseWaiter(Waiter waiter) {
waiters.add(waiter);
}
public static InfuseMan takeInfuseMan() throws InterruptedException {
return infuseMen.take();
}
public static void releaseInfuseMan(InfuseMan im) {
infuseMen.add(im);
}
}
package local.tea;
public class Waiter extends TTobj {
public Waiter(String name) {
super(name);
}
Tea.Flavor order;
TeacupTray tt = new TeacupTray();
public void takeOrder(Tea.Flavor order) throws InterruptedException {
this.order = order;
System.out.println(name + " 这位爷您点了 " + order);
TeaStall.takeInfuseMan().takeTea(this.order, tt);
}
public Tea takeTea() {
System.out.println(name + " 茶来啦 ");
return tt.getTea();
}
public void release() {
TeaStall.releaseWaiter(this);
}
}
class TeacupTray {
private Tea tea;
public Tea getTea() {
return tea;
}
public void setTea(Tea tea) {
this.tea = tea;
}
}
=========================
运行结果:
有家茶庄 开门啦
TeaClient【梁朝伟】 大驾光临
TeaClient【刘嘉玲】 大驾光临
TeaClient【梁朝伟】 小二!沏杯茶!六安瓜片
Waiter【小二张】 这位爷您点了 六安瓜片
InfuseMan【烹煮沏】 沏了一杯 六安瓜片
Waiter【小二张】 茶来啦
TeaClient【梁朝伟】 品尝并称赞着 六安瓜片
TeaClient【梁朝伟】 我走啦~
有家茶庄 打烊啦
TeaClient【刘嘉玲】 小二!沏杯茶!武夷岩茶
Waiter【小二张】 这位爷您点了 武夷岩茶
InfuseMan【烹煮沏】 沏了一杯 武夷岩茶
Waiter【小二张】 茶来啦
TeaClient【刘嘉玲】 品尝并称赞着 武夷岩茶
TeaClient【刘嘉玲】 我走啦~
请用java中面向对象的思想用代码描述如下内容:
把 人 封装成一个类Personjava面向对象代码经典,继承这个类 变有了 人应该有的属性
把 家庭成员关系封装一个类Family,继承这个类有了家庭关系的属性
把工作封装成一个接口Jop,继承这个接口实现了工作的方法
由于Person 和 Family 属性都是固定的,即每个人的情况基本都一样所以封装成类
Jop 则是因为 每个人的工作不一样,所有做成接口,究竟是什么样的工作让这个人来实现
这里Person 和 Family需要的属性并不多,所以我统一将java面向对象代码经典他们封装了一个类 Person 实现代码如下:
public class XiaoHong extends Person implements Jop {
public XiaoHong(String name, String sex, String Father, String Mother,
String Son) {
super(name, sex, Father, Mother, Son);
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
XiaoHong xiaohong = new XiaoHong("小红","女","李雷", "韩梅梅", "讨厌啦!人家还小!");
System.out.println(xiaohong);
xiaohong.work();
}
@Override
public void work() {
System.out.println("我是一个高中生");
}
}
/********************************************************************************/
public class Person {
private String name = "I Don't Know";
private String sex = "I Don't Know";
private String Father = "I Don't Know";
private String Mother = "I Don't Know";
private String Son = "I Don't Know";
public Person(String name, String sex, String myFather, String myMother,
String mySon) {
super();
this.name = name;
this.sex = sex;
this.Father = myFather;
this.Mother = myMother;
this.Son = mySon;
}
public String getName() {
return name;
}
public String getSex() {
return sex;
}
public String getMyFather() {
return Father;
}
public String getMyMother() {
return Mother;
}
public String getMySon() {
return Son;
}
@Override
public String toString() {
return "Person [name=" + name + ", sex=" + sex + ", Father="
+ Father + ", Mother=" + Mother + ", Son=" + Son
+ "]";
}
}
/******************************************************************************/
public interface Jop {
public void work();
}
Java程序面向对象编程的基本架构 接口的定义和使用 求完整代码……谢谢
public class Admins implements Userinterface{
private String name;
private String password;
private static int userNum;
public Admins() {
userNum ++;
}
public Admins(String name, String password) {
this.name = name;
this.password = password;
userNum ++;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return this.password;
}
public String toString() {
return "Total: " + Admins.userNum + "\nName: " + this.name + "\nPassword: " + this.password;
}
public static void main(String [] args) {
Userinterface [] users = new Userinterface[]{new Admins("jeryy", "11111"), new Admins("green", "123123")};
for(Userinterface u: users) {
System.out.println(u);
}
}
}
interface Userinterface{
public void setPassword(String password);
public String getPassword();
public String toString();
}
public class Bins{
public static void main(String [] args) {
int len = 10;
int [] dist = new int [len];
for(int i = 0; i dist.length; i ++) {
dist[i] = (int)(Math.random() * 100);
}
java.util.Arrays.sort(dist);
System.out.println("生成数组如下: ");
for(int i: dist) {
System.out.print(i + "\t");
}
java.util.Scanner san = new java.util.Scanner(System.in);
System.out.print("输入要查找java面向对象代码经典的数: ");
int key = san.nextInt();
int res = Bins.binSearch(dist, key);
//System.out.println(res);
String info = (res =0 ) ? (key + ":" + res) : "查找失败";
System.out.println(info);
}
public static int binSearch(int [] dist, int key) {
java.util.Arrays.sort(dist);
return java.util.Arrays.binarySearch(dist, key);
}
}
关于java面向对象代码经典和java面向对象基础知识的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。