Java作业八(2017-10-30)

Java单例模式与对象实例化
本文通过几个示例介绍了Java中单例模式的实现方式,并展示了如何使用构造方法来控制对象的创建过程,同时提供了包含静态成员变量与方法的Person类实例,用于展示类的实例化及成员变量的使用。
public class TAutoPerson {
	public static void main(String args[]) {
		          new Person();
		          new Person();
		          new Person();
		          new Person();
		          new Person();
		          
		     }
		 }
		     class Person{
		         private String name;
		         private static  int count;
		         public Person() {
		             count++;
		             System.out.println("产生了" + count +"个实例化对象。 ");
		         }
		         public String getInfo() {
		             return "姓名: " + this.name;
		         }
		     
 }

    public static void main(String[] args) {
		          System.out.println(new Person().getInfo());
		          System.out.println(new Person("A").getInfo());
		          System.out.println(new Person("B").getInfo());
		          System.out.println(new Person().getInfo());
		 
		     }
		 }
		     class Person{
		         private String name;
		         private static int count;
		         public Person() {
		             count++;
		             this.name = "NONAME - "+ count ;
		         }
		         public Person(String name) {
		             this.name=name;
		             
		         }
		        public String getInfo() {
		             return "姓名: "+ this.name;
		             }

public class TAutoPerson {
	public static void main(String args[]) {
		          Single s = null;
		          s = Single.getInstance();
		          s.print();
		      }
		  
		  }
		     class Single{
		         private static Single instance = new Single();
		         private Single() {
		             
		         }
		         public static Single getInstance() {
		             return instance;
		         }
		         public void print() {
		             System.out.println("hello world!!!");
		         }
}

     

public class TAutoPerson {
	public static void main(String[] args) {
		          Persona per1 = new Persona("张三",30);
		          Persona per2 = new Persona("李四",31);
		          Persona per3 = new Persona("张五",32);
		          System.out.println("---------------------信息修改之前-----------------------------");
		          System.out.println(per1.getInfo());
		          System.out.println(per1.getInfo());
		         System.out.println(per1.getInfo());
		         System.out.println("---------------------信息修改之后-----------------------------");
		         Persona.city = "B城";
		         System.out.println(per1.getInfo());
		         System.out.println(per1.getInfo());
		         System.out.println(per1.getInfo());
		     }
		 
		 }
		 class Persona{
		     private String name;
		     private int age;
		     static String city = "A城";
		     public Persona(String name,int age) {
		         this.name = name;
		         this.age = age;
		     }
		     public String getInfo() {
		         return " 姓名:"+ this.name + ",年龄:" + this.age + ", 城市: "+city;
		     }
}

  

public class TAutoPerson {
    public static void main(String[] args) {
    	TAutoPerson s=TAutoPerson.getSinglePerson();
             System.out.println(s.toString());//得到唯一的对象
         }
 
     private String name="The God";
     private int age=10000;
     private static TAutoPerson  person=new TAutoPerson();//生成对象放在java静态池中,否则如果非静态在堆中,生命周期比类短
     private TAutoPerson() {};//构造方法私有化可以避免大量实例化对象而消耗内存
     public static TAutoPerson getSinglePerson() 
         return person;
     }
     @Override
     public String toString() {
         return "SinglePerson [name=" + name + ", age=" + age + "]";
     }
}

  

 

转载于:https://www.cnblogs.com/chengxuyuanGM/p/7793390.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值