如何保证对象的唯一性

/*
如何保证对象的唯一性:1.不允许其他程序用new来创建该类对象。2.在该类创建一个本类实例。3.对外提供一个方法让其他程序可以获取该对象的引用。
*/
public class Test{public static void main(String[] args){//Subject sub = Subject.oSub;//这种方法不可控,一般不访问成员Subject sub = Subject.getInstance();//我们可以在方法中增加条件,根据条件是否返回对象的引用,增加程序的可控性!new Student().show(sub);new Teacher().show(sub);}
}class Subject{public  String sub;public static Subject oSub = new Subject();private Subject(){sub = "计算机科学与技术";}public static Subject getInstance(){//oSub = new Subject();//if(****) 增加 if 判断 可以 增加程序的可控性return oSub;}public String getSubject(){return sub;}public void setSubjcet(String name){sub = name;}
}/*静态成员变量和普通成员变量的显示初始化的不同之处:以下面的例子为例:静态变量的显示初始化编译之后不会放进 构造函数中!(想一想啊,如果放进了构造函数中,那不就是产生对象了吗?那可能吗?它是静态的,是属于类的!普通成员变量是属于对象的,所以显示初始化会放进构造函数中)所以不会使构造函数一直调用,最终栈溢出而普通成员变量的显示初始化编译之后回放进构造函数中, 这样就会导致构造函数一直被反复调用!class Subject{public  String sub;//public Subject ss = new Subject();public static Subject oSub = new Subject();//恶汉式//public static Subject oSub = null;//懒汉式private Subject(){//oSub = new Subject();//oSub是静态变量,加上这一句就会导致oSub显示初始化时栈溢出!sub = "计算机科学与技术";}public static Subject getSubject(){        return oSub;//return oSub = new Subject();}
}
*/class Student{public void show(Subject sub){System.out.println(sub.sub);}
}class Teacher{public void show(Subject sub){System.out.println(sub.sub);}
}

  

转载于:https://www.cnblogs.com/hujunzheng/p/3872833.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ios kvo 要引入_腾讯社招iOS面试记录

毕业好几年了,上周发送了简历给腾讯,参加了腾讯面试。具体部门这边就不说了。这次面试还是收获到了很多。一面电话面试:面试官主要是针对iOS相关的基础问题。先简单自我介绍一下自己对mrc和arc的理解谈谈对自动释放池的理解自动释放池在mrc和…

动态设置html字号,动态设置html的font-size值 (适配文字大小)

PC端(function () {function setRootFontSize() {let rem, rootWidth;let rootHtml document.documentElement;//限制展现页面的最小宽度rootWidth rootHtml.clientWidth < 1366 ? 1366 : rootHtml.clientWidth;// 19.2 设计图尺寸宽 / 100( 设计图的rem 100 )rem roo…

一个小例子对多态简单的理解

class Parent{int age;String name;public Parent(String name, int age){this.name name;this.age age;}public void writeWay(){System.out.println("毛笔!");}}class Child extends Parent{int age;String name;//这里只说为了说明一个问题&#xff0c;其实完全…

运行shell脚本时怎么知道jdk路径_Shell写脚本关于ssh执行jar包,需要刷新JDK路径的问题...

比如脚本中下面这一段ssh $i "java -jar /applog/$PROJECT/$APPNAME --server.port$SERVER_PORT >/dev/null 2>&1 &"免密登录linux服务器&#xff0c;执行jar包&#xff0c;通过ssh执行java程序&#xff0c;涉及到一个找不到JDK路径的问题&#xff0c;…

html 中加号的表示方法,CSS的+(加号)选择器怎么用

在CSS中“”符号选择器用于选择紧跟在指定元素之后但不在特定元素内部的元素。下面本篇文章就来具体介绍一下&#xff0c;希望对大家有所帮助。“”符号选择器在CSS中“”符号选择器被称为相邻兄弟选择器&#xff0c;用于选取在同一父元素下的&#xff0c;紧跟指定元素之后的另…

poj 1724ROADS(bfs和dfs做法)

1 /*2 dfs比较好想&#xff0c;就是测试数据的问题&#xff0c;导致在遍历边的时候要倒着遍历才过&#xff01;3 */4 #include<iostream> 5 #include<cstdio>6 #include<cstring>7 #include<vector>8 #include<algorithm>9 #define Max 0x3f3f3f…

华为新系统 鸿蒙,旗舰CPU+鸿蒙OS!华为Mate家族重磅新品来袭

我们常说安卓平板的生态跟苹果iPad有很大差距&#xff0c;不论是应用质量还是原生系统支持&#xff0c;苹果都做的更好一些。可能也是因为这个原因&#xff0c;因此安卓平板&#xff0c;尤其是旗舰级别的平板至今除了三星之外&#xff0c;也就只有华为在做。作为安卓阵营两大厂…

mysql中用来取余数的函数是_MySQL常用函数-单行处理函数-字符串处理函数(更新中...)...

本篇文章用到的数据库表/* SQLyog Ultimate v12.09 (64 bit) MySQL - 5.7.23-log : Database - myemployees ********************************************************************* *//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE*/;/*!40014 SET OLD_UNIQUE_CHECKSUN…

HDU 1024Max Sum Plus Plus(最大m字段和)

/* 动态转移方程&#xff1a;dp[i][j]max(dp[i-1]a[i], max(dp[t][j-1])a[i]) (j-1<t<i) 表示的是前i个数j个字段和的最大值是多少&#xff01; */ 1 #include<iostream> 2 #include<cstdio>3 #include<cstring>4 #define N 10000 5 using nam…

html盒子模型页面居中,【静态页面架构】CSS之盒子模型

CSS架构盒子模型&#xff1b;以内容区(显示文本和图像)内边距(内容区至边距的距离)边距(内容区的边界)外边距(元素的边框之间的距离)1.边距&#xff1b;border属性&#xff1b;简写属性用来设置边距的上(top)右(right)下(bottom)左(left)。宽度&#xff0c;颜色和样式div{width…

最强动画制作人书包_声优访谈丨恋与制作人动画中配声优访谈——夏磊

亲爱的制作人们&#xff1a;距离恋与制作人动画上线还有6天&#xff01;今天的中配声优访谈嘉宾是在动画中为许墨献声的夏磊老师~固定布局 工具条上设置固定宽高背景可以设置被包含可以完美对齐背景图和文字以及制作自…

(单例设计模式中)懒汉式与饿汉式在多线程中的不同

/*目的&#xff1a;分析一下单例设计模式中&#xff0c;懒汉式与饿汉式在多线程中的不同&#xff01;开发时我们一般选择饿汉式&#xff0c;因为它简单明了&#xff0c;多线程中不会出现安全问题&#xff01;而饿汉式需要我们自己处理程序中存在的安全隐患&#xff0c;但是饿汉…

shiro修改html不生效,shiro中anon配置不生效

再配置shiro的时候&#xff0c;如下代码要注意&#xff1a;1、下述代码中必须是LinkedHashMap 而不能是HashMap。2、anon定义必须在authc之前否则anon定义不生效Beanpublic ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager){ShiroFilterFactor…

codesys com库_CoDeSys官方系统库在线下载,替换国内下载服务器教程

欢迎加入工控分享技术服务社区推荐阅读Codesys学习资料大全Codesys控制器关于CANopen总线的详细应用说明当你软件报以下错误&#xff0c;你可以直接下载&#xff0c;如果下载不成功&#xff0c;可以换个网络试一试&#xff0c;或者进行下面的操作。由于国内网络问题&#xff0c…

centos7恢复mysql数据库_MySQL数据库升级迁移填坑记

原库&#xff1a;*.*.101.73/74 系统环境: Suse 12.4MySQL: 5.7.29新库&#xff1a;*.*.110.46/47系统环境&#xff1a;CentOS7.7 64位MySQL版本: 5.7.30[一、数据库升级迁移场景]因业务侧在*.*.101.73/74 mysql数据库服务器上部署了java应用程序、HadoopHbase数据库等大数据…

so把asp页面生成静态的html,23、asp系列课程--server.URLEncode方法和server.HTMLEncode方法...

作者&#xff1a;杨凡来自&#xff1a;杨凡博客地址&#xff1a;blog.sina.com.cn/aboutshisanserver.URLEncode方法和server.HTMLEncode方法可以对字符串进行编码。我们一个一个的说。server.URLEncode可以对字符串进行URL编码转换&#xff0c;语法格式为&#xff1a;server.u…

poj 1905Expanding Rods

1 /*2 二分 几何3 弧长L&#xff0c; 圆半径R&#xff0c; 弧度 q&#xff0c; LR*q;4 二分&#xff1a; 弧度&#xff08;0~PI&#xff09; 或者 高度&#xff08;L/2~L&#xff09; 5 */6 #include<cstdio> 7 #include<iostream>8 #include<cmath>9…

java中同步嵌套引起的死锁事例代码

/*目的&#xff1a;自己写一个由于同步嵌套引起的死锁&#xff01;思路&#xff1a;多个线程在执行时&#xff0c;某一时刻&#xff0c;0-Thread绑定了LockA锁&#xff0c;1-Thread绑定了LockB锁&#xff01;当0-Thread要去绑定LockB锁时 和 1-Thread要去绑定LockA锁时都不能绑…

下列关于html5表单的多样输入方式,IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1...

原标题&#xff1a;IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1HTML5拥有多个新的表单输入类型&#xff0c;这些新特性提供了更好的输入控制和验证。并不是所有的主浏览器都支持新的input类型&#xff0c;不过我们可以在所有的主浏览器中使用它们&#xff0c;即使不被支持&a…

v7000更换电池步骤_ups电源运行中是否可以更换电池?应如何操作呢

ups电源在日常使用中除了日常维护工作之外&#xff0c;对于使用达到一定年限的时候&#xff0c;内部使用的ups蓄电池就需要更换了&#xff0c;很多人以为ups不间段电源在工作的时候是可以跟换电池。其实&#xff0c;这个具体就需要看ups电源设计的原理&#xff0c;不同厂家设计…