0118练习 单例模式

import java.util.Scanner;

public class AnyThing {

    public AnyThing(){        //定义无参数构造方法

        this ("this 调用有参构造方法");        //使用this关键字调用有参数构造方法
    System.out.println("无参构造方法");

    }

     public AnyThing(String name){              //定义有参构造方法
         System.out.println("有参构造方法");

    }

     private int id;         //定义一个int型的成员变量
     private String name;      //定义一个String型的成员变量
     private String category; //定义一个String型的成员变量
     public String getName(){   //定义一个getname()方法
         int id =0;            //局部变量
         setName("Java");         //调用类中其他方法
         return id + this.name;//设置方法返回值
     }
     private void setName(String name){   //定义一个setName()方法
         this.name = name;                 //将参数值赋予类中的成员变量
     }
     public /*Book*/AnyThing getBook(){
         System.out.println(id);
         return this;  //返回book类引用
     }

     //定义图书类
 private String title;  //定义书名

     private String author;  //定义作者

     private double price;    //定义价格

     public AnyThing(String title,String author,double price){  //利用构造方法初始化域
         this.title = title;
         this.author = author;
         this.price = price;

     }
     public String getTitle(){   //获得书名
         return title;
     }
     public String getAuthor(){     //获得作者
         return author;
     }
     public double getPrice(){     //获得价格
         return price;
     }

     //温度单位转换工具
     public double getFahrenheit(double celsius){ //计算华氏温度
         double fahrenheit = 1.8 * celsius + 32;  //返回华氏温度
         return fahrenheit;
     }

     public static void main(String[] args){    //定义主方法
         for(int i =0;i<args.length;i++){          //根据参数个做循环操作
             System.out.println(args[i]);    //循环打印参数内容
         }

         AnyThing book = new AnyThing("《Java从入门到精通(第二版)》","明日科技",59.8);//创建对象
         System.out.println("书名:"+book.getTitle());     //输出书名
         System.out.println("作者:"+book.getAuthor());     //输出作者
         System.out.println("价格:"+book.getPrice()+"元");  //输出价格

        System.out.println("请输入要转换的温度()");

        Scanner in = new Scanner(System.in);  //获得控制台输入

        double celsius = in.nextDouble();  //获得用户输入的摄氏温度

        AnyThing converter = new AnyThing();  //创建类的对象

        double fahrenheit = converter.getFahrenheit(celsius); //转换温度为华氏度

        System.out.println("转换完成的温度(单位:华氏度)"+fahrenheit); //输出转换结果

     } 

}

public class Emperor{
private static Emperor emperor = null;  //声明一个Emperor类的引用

private Emperor (){     //将构造方法私有
}
public static Emperor getlnstance(){   //实例化引用
    if (emperor == null){
        emperor = new Emperor();
    }
    return emperor;
}
public void getName(){         //使用普通方法输出皇帝的名字
    System.out.println("我是皇帝; 明日科技");
}

public static void main(String[] args) {

    System.out.println("创建皇帝1对象:");
    Emperor emperor1 = Emperor.getlnstance();//创建皇帝对象
    emperor1.getName();                   //输出皇帝的名字

    System.out.println("创建皇帝2对象:");
    Emperor emperor2 = Emperor.getlnstance();
    emperor2.getName();

    System.out.println("创建皇帝3对象:");
    Emperor emperor3 = Emperor.getlnstance();
    emperor3.getName();

}
}

时间: 2024-10-12 02:49:15

0118练习 单例模式的相关文章

Java设计模式学习笔记,一:单例模式

开始学习Java的设计模式,因为做了很多年C语言,所以语言基础的学习很快,但是面向过程向面向对象的编程思想的转变还是需要耗费很多的代码量的.所有希望通过设计模式的学习,能更深入的学习. 把学习过程中的笔记,记录下来,只记干货. 第一部分:单例模式的内容 单例模式:类只能有一个实例. 类的特点:1.私有构造器:2.内部构造实例对象:3.对外提供获取唯一实例的public方法. 常见的单例模式实现有五种形式: 1.饿汉式. 2.懒汉式. 3.双重检查锁式. 4.静态内部类式. 5.枚举式. 以下分别

【python之路33】开发模式单例模式

1.单例模式指的是创建单个实例,例如:数据库连接池中包含10个数据库连接,用户访问数据时随机从连接池中拿出一个进行连接,其他用户再次访问时不再创建对象进行连接 #!usr/bin/env python # -*- coding:utf-8 -*- class ConnecttionPool: __instance = None def __init__(self): self.ip = '222.133.177.67' self.port = '3306' self.username = 'od

.Net 单例模式(Singleton)

每台计算机可以有若干个打印机,但只能有一个Printer Spooler, 以避免两个打印作业同时输出到打印机中.每台计算机可以有若干传真卡,但是只应该有一个软件负责管理传真卡,以避免出现两份传真作业同时传到传真卡中的情况.每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用. 问题描述: 单例模式 Singleton Pattern 问题解决: (1)单例模式简介: Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点.这

设计模式(一)----单例模式

单例模式其实就是每次实例化时都会得到一个相同的对象. 单例模式的写法有个简单的口诀:三私一公即一个私有的静态属性,私有的构造方法,私有的克隆方法还有一个公共的静态方法. <?phpclass Cat{ //私有的静态属性 private static $instance; //私有的构造方法 private function __construct(){ echo "这是一个单例模式"; } //公共的静态方法 public static function getInstance

Qt中单例模式的实现(4种方法)

最简单的写法: 12345 static MyClass* MyClass::Instance(){ static MyClass inst; return &inst;} 过去很长一段时间一直都这么写,简单粗暴有效.但是直接声明静态对象会使编译出的可执行文件增大,也有可能出现其他的一些问题,所以利用了Qt自带的智能指针QScopedPointer和线程锁QMutex,改成了需要时才动态初始化的模式: 12345678910111213 static MyClass* MyClass::Inst

设计模式之单例模式

单例模式是软件开发中非常普遍的一种模式.它的主要作用是确保系统中,始终只存在一个类的实例对象. 这样做的好处有两点: 1.对于需要频繁使用的对象,在每次使用时,如果都需要重新创建,并且这些对象的内容都是一样的.则不但提高了jvm的性能开销(堆中开辟新地址,同时降低GC效率等),同时还会降低代码的运行效率.倘若始终在堆中只存在唯一的一个实例对象.任何方法在使用时,均直接访问这个实例对象,则大大提高了系统的运行效率. 2.可以更好的维护对象,倘若系统中存在多个相同的实例对象,而一旦这些实例对象的属性

设计模式之单例模式(c++)

问题描述 Singleton 模式解决问题十分常见, 我们怎样去创建一个唯一的变量( 对象)?在基于对象的设计中我们可以通过创建一个全局变量(对象) 来实现,在面向对象和面向过程结合的设计范式(如C++中)中,我们也还是可以通过一个全局变量实现这一点.但是当我们遇到了纯粹的面向对象范式中,这一点可能就只能是通过Singleton模式来实现了,可能这也正是很多公司在招聘 Java 开发人员时候经常考察Singleton 模式的缘故吧. (全局变量在项目中是能不用就不用的,它是一个定时炸弹,是一个不

设计模式一(单例模式)

单例模式:所谓单例模式就是确保类只有一个对象,并提供一个公共的访问接口.下面根据概念分析单例模式. 1.确保一个实例,就是不让程序随处可以new一个对象,这个怎么实现呢?运用私有构造函数. public class Singleton { private Singleton() { } } 这样Singleton就不能new对象了. 2.唯一的对象在何处?在内部定义一个静态的Singleton对象,为什么要定义静态的呢,因为静态对象属于类.然后提供一个公共的访问接口即可 public class

java/android 设计模式学习笔记(一)---单例模式

前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使用的时候也会有一些坑. PS:对技术感兴趣的同鞋加群544645972一起交流 设计模式总目录 java/android 设计模式学习笔记目录 特点 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 单例模式的使用很广泛,比如:线程池(threadpool).缓存(cache).对