- 浏览: 119903 次
- 性别:
- 来自: 佛山
文章分类
最新评论
-
zgw06629:
多谢提供的安装包
MyEclipse安装资源文件支持中文插件编辑属性 -
lmzpp:
学习了,谢谢
MyEclipse安装资源文件支持中文插件编辑属性 -
nba:
不错, 谢谢了
MyEclipse安装资源文件支持中文插件编辑属性 -
CMShmily:
MyEclipse安装资源文件支持中文插件编辑属性
8.3 面向对象的设计模式
实例156 Singleton单例模式
public class TestClass { // 单例模式的测试类 public static void main(String[] args) { Singleton object1 = Singleton.getSingleton(); // 调用方法获得实例 Singleton object2 = Singleton.getSingleton(); // 调用方法获得实例 System.out.println("用Singleton类实现单例模式的实例如下:"); System.out.println("调用next()方法前:"); System.out.println("object1.amount=" + object1.getAmount()); System.out.println("object2.amount=" + object2.getAmount()); object1.next(); // 调用方法 System.out.println("\n调用next()方法后:"); System.out.println("object1.amount=" + object1.getAmount()); System.out.println("object2.amount=" + object2.getAmount()); } } class Singleton { private static int amount = 5; // 私有属性 private static Singleton singleton = new Singleton();// Singleton的唯一实例 private Singleton() { // 创建private私有构造函数的目的为防止外界构造Singleton实例 } public static Singleton getSingleton() { // 获取Singleton的实例 return singleton; } public synchronized int getAmount() { // synchronized关键字表示方法是线程同步 return amount; // 任一时刻最多只能有一个线程进入该方法 } public synchronized void next() { // 将amount加1 amount++; } }
实例157 招聘(简单工厂模式)
public class FactoryOne { public static void main(String[] args) { try { Person person = Recruitment.findWork("Middle_Programmer"); // 调用方法返回车的实例 System.out.println("请各位谈谈自己的工作经历好吗?"); person.experience(); // 调用方法开车 } catch (Exception e) { // 捕获异常 System.out.println("招聘的过程中出现了问题,停止招聘"); } finally { // 代码总被执行 System.out.println("......"); } } } class Recruitment { public static Person findWork(String s) throws Exception { if (s.equalsIgnoreCase("Low_Programmer")) { // 判断传入参数返回不同的实现类 return new Low_Programmer(); } else if (s.equalsIgnoreCase("Middle_Programmer")) { return new Middle_Programmer(); } else if (s.equalsIgnoreCase("High_Programmer")) { return new High_Programmer(); } else { throw new Exception(); // 抛出异常 } } } interface Person { public void experience(); // 工作经验 } class Low_Programmer implements Person { // 初级程序员 public void experience() { System.out.println("我刚走出大学校门,目前只有不到一年的工作经验!!"); } } class Middle_Programmer implements Person {// 中级程序员 public void experience() { System.out.println("我已经毕业一年多了,目前有二年多的工作经验!"); } } class High_Programmer implements Person {// 高级程序员 public void experience() { System.out.println("我已经毕业很多年了,目前有五年多的工作经验!"); } }
实例158 同学聚会(工厂方法模式)
package Chapter08; public class FactoryTwo { public static void main(String[] args) { // java程序主入口处 try { Forms form = new ShangHai();// 接口变量引用实现类对象 MeetOfStudents mos = form.place(); // 调用方法返回聚会的实例 System.out.println("今年咱们同学去哪聚会啊?"); mos.form(); // 调用方法获得聚会的方式 } catch (Exception e) { // 捕获异常 System.out.println("今年的同学聚会取消?"); } finally { // 代码总被执行 System.out.println("......"); } } } interface MeetOfStudents {// 聚会的形式 public void form(); } interface Forms {// 聚会的地方 public MeetOfStudents place(); } class Hotels implements MeetOfStudents {// 酒店 public void form() { System.out.println("我们去酒店好好的吃一顿吧!"); } } class Home implements MeetOfStudents {// 个人家里 public void form() { System.out.println("我们还是去谁家好好的聊聊天,吃一顿便饭吧"); } } class Nightclub implements MeetOfStudents {// 夜总会 public void form() { System.out.println("我们还是去夜总会好好的High一次吧,放松一下心情"); } } class QinHuangDao implements Forms {// 秦皇岛 public MeetOfStudents place() { return new Hotels(); } } class ShangHai implements Forms {// 上海 public MeetOfStudents place() { return new Nightclub(); } } class BeiJing implements Forms {// 北京 public MeetOfStudents place() { return new Home(); } }
实例159 图书展(抽象工厂模式)
public class FactoryThree { public static void main(String[] args) { PropertyOfBook garden = ShowBooks.getProperty("计算机型"); // 传入参数调用方法获得实例 Book bookname = garden.getBookName(); // 获取书的名字 Book author = garden.getAuthor(); // 获取书的作者 Book price = garden.getPrice(); // 获取书的价格 System.out.println("书的名字:" + bookname.getName()); System.out.println("书的作者:" + author.getName()); System.out.println("书的价格:" + price.getName()); } } class Book { // 书类 String name; // 书的名称 public Book(String name) { // 带参数的构造方法 this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } } abstract class PropertyOfBook { // 书的属性 public abstract Book getAuthor(); // 作者 public abstract Book getPrice(); // 价格 public abstract Book getBookName(); // 书的名字 } class Computer extends PropertyOfBook { // 计算机类的 public Book getAuthor() { return new Book("张三"); } public Book getBookName() { return new Book("Java Web实例大全"); } public Book getPrice() { return new Book("88.00"); } } class English extends PropertyOfBook // 英语类 { public Book getAuthor() { return new Book("张小红"); } public Book getBookName() { return new Book("跟我学英语"); } public Book getPrice() { return new Book("35.8"); } } class Health extends PropertyOfBook // 健康类 { public Book getAuthor() { return new Book("李四"); } public Book getBookName() { return new Book("人类长寿的10个秘密"); } public Book getPrice() { return new Book("66.9"); } } class ShowBooks { // 定义抽象工厂类 private static PropertyOfBook po; public static PropertyOfBook getProperty(String type) { po = new Computer(); // 默认为计算机类 if (type.equals("英语类")) po = new English(); if (type.equals("健康类")) po = new Health(); return po; } }
实例160 汽车适配器(Adapter适配器模式)
public class Adapter { public static void main(String[] args) { Honda honda = new Honda(); // 实例化对象 honda.setColor("red"); // 设置位置 honda.display(); // 显示颜色 honda.move(); // 移动距离 AudiAdapter audi = new AudiAdapter();// 实例化适配器 audi.setColor("black"); // 设置位置 audi.setSpeed(60); audi.display(); // 显示颜色 audi.move(); // 移动距离 } } interface Car { // 定义车接口 public void setColor(String color); // 设置颜色 public String getColor(); // 获得颜色 public void setSpeed(int Speed); // 设置车速 public int getSpeed(); // 获得车速 public void move(); // 移动的距离 public void display(); // 显示车的颜色 } class Honda implements Car { // 定义一个继承了car接口的轿车本田 String color; int speed; public void setColor(String color) { this.color = color; } public String getColor() { return this.color; } public int getSpeed() { return this.speed; } public void setSpeed(int speed) { this.speed = speed; } public void move() { System.out.println("本田车已经移动到:" + 3 * speed); } public void display() { System.out.println("本田车的颜色为:" + color); } } class Audi { // 定义一个奥迪车,没有实现Car接口 String color; public String getColor() { return color; } public void setColor(String color) { this.color = color; } public void display() { System.out.println("奥迪车的颜色为:" + color); } } class AudiAdapter implements Car { private Audi audi; private int speed; public AudiAdapter() { audi = new Audi(); } public void display() { audi.display(); } public String getColor() { return audi.getColor(); } public void setColor(String color) { audi.setColor(color); } // 为奥迪车扩展Move()和setSpeed以及getSpeed的方法 public int getSpeed() { return speed; } public void move() { System.out.println("奥迪车已经移动到:" + 3 * speed); } public void setSpeed(int speed) { this.speed = speed; } }
8.4 垃圾回收
实例161 垃圾回收的机制
public class GarbageCollector { static int count; int index; GarbageCollector() { count++; System.out.println("object " + count + " is constracted"); setid(count); } void setid(int id) { index = id; } protected void finalize(int count) { System.out.println("object " + index + " is GarbageCollectord collection"); } public static void main(String args[]) { new GarbageCollector(); new GarbageCollector(); new GarbageCollector(); new GarbageCollector(); new GarbageCollector(); System.gc(); } }
发表评论
-
JAVA范例 十九) 多媒体与图像处理 (二)
2011-09-30 19:27 1580图像处理 实例354 在计算机内存中创建一个图像 i ... -
JAVA范例 十九) 多媒体与图像处理
2011-09-30 18:40 1420a多媒体 实例349 测试音频播放器 import j ... -
JAVA范例 - Applet小应用程序
2011-09-30 18:27 3219Applet小应用程序 实例337 不断变大的文字 ... -
JAVA范例 十七)界面-Swing(二)
2011-09-30 18:06 1357实例326 BorderLayout版面布局 imp ... -
JAVA范例 十七)界面-Swing(一)
2011-09-30 17:51 2086实例306 JFrame框架的应用 import j ... -
JAVA范例 十六)数据库技术
2011-07-21 20:16 1570数据库技术 实例293 加载JDBC驱动程序 ... -
JAVA范例 十五)网络编程
2011-07-21 17:38 136015.1 IP地址 实例270 获 ... -
JAVA范例 十四)泛型
2011-07-21 17:30 1130第14章 泛型 14 ... -
JAVA范例 十三)多线程编程(3)
2011-07-21 17:12 1531线程应用实例 实例244 下雪的村庄 ... -
JAVA范例 十三)多线程编程(2)
2011-07-21 17:06 115413.3 线程的优先级 实例238 排座位(线程优 ... -
JAVA范例 十三)多线程编程(1)
2011-07-21 16:07 1700第13章 多线程编程 13.1 多线程的五种基本状态 ... -
JAVA范例 十二)Java高级开发技术
2011-07-21 13:55 137412.1 Set 实 ... -
JAVA范例 十一)JAVA常用类
2011-07-21 13:34 133011.1 数学Math类 实例186 求圆周率∏值 ... -
JAVA范例 十) 内部类与接口
2011-07-21 12:30 985内部类与接口 10.1 成员内部类 ... -
JAVA范例 九)面向对象---面向对象的四大特征
2011-07-21 11:50 16919.1 抽象 实例 ... -
JAVA范例 八)面向对象---类、成员变量和方法
2011-07-21 11:30 1687类 实例148 简单的通讯录类 p ... -
JAVA范例 七)输入/输出流---字符流
2011-07-21 02:40 2150字符流 实例140 按顺序创建文件 ... -
JAVA范例 七)输入/输出流---字节流
2011-07-21 02:28 19597.2 字节流 实例123 复制指定目录下的文件 ... -
JAVA范例 七)输入/输出流---文件和目录
2011-07-21 02:16 1693文件和目录 实例116 ... -
JAVA范例 六)字符串---StringBuffer
2011-07-21 02:12 1400字符串缓存类StringBuffer ...
相关推荐
JAVA 2面向对象程序设计(随书范例程序)4-6.rar
JAVA代码注释范例 - 基础知识 - 周老师科研站, JAVA代码注释范例 - 基础知识 - 周老师科研站
Java编程模式与范例--高级应用开发
Ext slider扩展以级范例代码----下载不扣分,回帖加1分,欢迎下载,童叟无欺Ext slider扩展以级范例代码----下载不扣分,回帖加1分,欢迎下载,童叟无欺Ext slider扩展以级范例代码----下载不扣分,回帖加1分,欢迎...
第1章 Java概述、安装及简易教学 14 1-1 Java概述 14 1-2 Java安装 16 1-3 Eclipse安装 18 1-4 GUI设计工具WindowBuilder 18 1-5 在Eclipse开发第一个Java程式 23 1-6 在Eclipse开发第一个Java视窗程式-显示影像 26 ...
Java Web程序开发范例宝典 源码1-10
java课程设计报告范例-计算器
设计模式 java 范例 代码 给想学设计模式的朋友提供一些帮助,设计模式例子详解
[JAVA编程模式与范例][JAVA编程模式与范例][JAVA编程模式与范例][JAVA编程模式与范例][JAVA编程模式与范例][JAVA编程模式与范例][JAVA编程模式与范例][JAVA编程模式与范例][JAVA编程模式与范例][JAVA编程模式与范例]...
首先,全书以Java开发环境搭建开篇,循序渐进地介绍了Java语法的方方面面,不仅包括变量、语句、字符串、数组、类、集合、面向对象等必备的基础语法,而且还涵盖异常处理与反射机制、I/O文件操作、线程、数据库操作...
面向对象的Java网络编程 \chap03 提供了本书第3章的范例源程序; \chap04 提供了本书第4章的范例源程序; \chap05 提供了本书第5章的范例源程序; \chap06 提供了本书第6章的范例源程序; \chap07 ...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
《面向对象分析与设计》大作业范例《网上招聘系统分析设计与实现》(2013-2014春季学期).doc
商业计划书范例-----某网站商业计划书
商业计划书范例-----某网站商业计划书
C#范例解析-----帮你学c#,很好用,下载试试就知道!!
Java灵感编程范例源代码41-60 5个压缩文件之一
Java灵感编程范例源代码1-20 5个压缩文件之一
Java灵感编程范例源代码81-101 5个压缩文件之一