Java的单例与静态成员变量与静态方法

class Dog

{

private static String name="狗";//狗的名字,你不知道所以是私有的;狗只有一个公共的名字所以是静态

int legNum;//狗的腿数

String color;//狗的颜色

String bodily;//狗的体型

//构造代码块,在构造方法中执行  但先于构造方法

{

System.out.println("这个只会被调用一次,因为这是一个单例");

}

//饿汉.....推荐

//狗只有一个所以创建一个单例的狗

private static Dog dog = new Dog();//创建一个静态的私有的对象dog,这个对象只会被静态方法或非静态方法调用

private Dog(){

//在这里私有化构造方法,使外部对象无法调用,防止在main函数里被new

}

public static Dog run(){

//在这里进行赋予单例;这里只能通过类方法访问

return dog;

}

//get与set方法

public void setColor(String color){

this.color = color;//因为color与成员变量color同名,所以要加this. 来加以区分

}

public String getColor(){

return color;//在这里系统会默认的给color添加上this.  不需要自己写

}

public void setName(String name){//不是所有的狗都一直被主人叫狗,但又因为是私有属性,不能在外部直接赋予name所以需要用到set方法赋予

this.name = name;

}

}

class work

{

public static void main(String[] args)

{

Dog d = Dog.run();//在这里进行创建单例

System.out.println(d);

d.setName("大黄");//赋予私有的静态的Name

d.setColor("红色");

System.out.println(d.getColor());//返回set的颜色

Dog d2 = Dog.run();

System.out.println(d2);//打印与上一样的对象

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,805评论 18 399
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,711评论 1 114
  • 多态 任何域的访问操作都将有编译器解析,如果某个方法是静态的,它的行为就不具有多态性 java默认对象的销毁顺序与...
    yueyue_projects阅读 996评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,131评论 19 139
  • 你做什么不重要, 重要的是你做的必定是这个时代需要的。 还在做胶卷的话就会像柯达一样没了, 还不接触并使用互联网工...
    一个景天阅读 360评论 0 0