- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
static关键字
1、课程名称:static关键字
2、知识点
2.1、上次课程的主要知识点
1、 String类特点:
· 字符串的内容一旦声明则不可改变,改变的是内存地址的指向;
· String类对象有两种实例化方式:
|- 直接赋值:开辟一块堆内存空间,并且可以自动入池;
|- 构造方法实例化:开辟两块堆内存空间,不会自动入池,可以利用intern()手工入池;
· 开发的使用:直接赋值使用、一般不会频繁改变、比较使用equals()。
2、 String类的方法;
3、 this关键字:
· 明确的表示本类中的属性,利用“this.属性”操作;
· 明确调用本类的方法:
|- 利用“this.方法()”调用本类方法;
|- 利用“this()”调用本类构造,但是要求必须放在构造方法的第一行;
· 表示当前对象:当前正在调用类中方法的对象。
2.2、本次预计讲解的知识点
static关键字定义属性以及定义方法的操作。
3、具体内容(★★★★★)
static是Java中定义的一个关键字,主要是描述全局的概念,所以利用static关键字可以定义属性、定义方法。但是在90%的情况下,我们的开发代码很少会去直接编写static。
3.1、利用static定义属性
现在假设定义一个只描述中国人的类,那么在这个类里面肯定要包含有姓名、年龄、国家,所以按照之前所学习的概念来进行设计,就可以得出如下的结果:
class Person {
private String name ;
private int age ;
String country = 中华人民共和国 ; // 此属性暂时不封装
public Person(String name,int age) {
this.name = name ;
this.age = age ;
}
public String getInfo() {
return 姓名: + this.name + ,年龄: + this.age + ,国家: + this.country ;
}
}
public class TestDemo {
public static void main(String args[]) {
Person perA = new Person(张三,10) ;
Person perB = new Person(李四,20) ;
Person perC = new Person(王五,10) ;
System.out.println(perA.getInfo()) ;
System.out.println(perB.getInfo()) ;
System.out.println(perC.getInfo()) ;
}
}
但是对于以上的程序的内存关系中就会发现问题所在了。
如果说现在玩穿越了,中国退回到了唐朝,中国14亿人口,14亿对象,14亿对象修改一个属性。
这样的话对于整个代码的维护实在是太可怕,而造成这种问题的根源在于:类中的普通属性是每一个对象都独自拥有的,但是这样的设计明显不符合于当前的环境,所以最好的做法是将国家的属性设置为公共属性。所有的对象都可以共享此属性,如果要想实现这样的操作,就可以通过static关键字来进行定义。
范例:使用static关键字来定义
class Person {
private String name ;
private int age ;
static String country = 中华人民共和国 ; // 此属性暂时不封装
public Person(String name,int age) {
this.name = name ;
this.age = age ;
}
public String getInfo() {
return 姓名: + this.name + ,年龄: + this.age + ,国家: + this.country ;
}
}
public class TestDemo {
public static void main(String args[]) {
Person perA = new Person(张三,10) ;
Person perB = new Person(李四,20) ;
Person perC = new Person(王五,10) ;
perA.country = 中国-唐朝 ; // 修改了一个对象的属性
System.out.println(perA.getInfo()) ;
System.out.println(perB.g
您可能关注的文档
- SPM2傻瓜攻略2..ppt
- 动物的卵1.ppt
- 直接转矩控制与矢量控制.ppt
- SpcMotorolaTrain.ppt
- 目送_介绍.ppt
- SpringMVC注解及实现页面跳转详解.doc
- GTM改性沥青混凝土路面质量控制.doc
- 直流保护回路通电试验工艺(172-183).doc
- GSM网络资源优化专题.ppt
- 动能与势能3221.ppt
- 无锡市公安局经开分局会同经开交警大队招聘119名警务辅助人员笔试高频难、易错点备考题库附答案详解.docx
- 曲靖市麒麟区2025年第二批次事业单位遴选(含遴选计划)笔试备考题库及答案详解一套.docx
- 7家智慧社区解决方案集锦,你pick谁.docx
- 江苏地质矿产设计研究院(中国煤炭地质总局检测中心)招聘笔试高频难、易错点备考题库及完整答案详解1套.docx
- 无为市人民法院选聘特邀调解员的笔试备考题库附答案详解.docx
- 最高人民法院直属单位2025年度公开招聘工作人员笔试高频难、易错点备考题库带答案详解.docx
- 汕头市公安局招聘70名警务辅助人员的笔试备考题库带答案详解.docx
- 江苏南京航空航天大学经济与管理学院MBA教育中心工作人员招聘笔试高频难、易错点备考题库含答案详解.docx
- 26、2025年上市公司执行企业会计准则监管报告.docx
- 求是杂志社2025年度公开招聘高校毕业生笔试备考题库及参考答案详解一套.docx
文档评论(0)