构造方法、static、匿名对象、封装、javaBean、this、package、import、访问权限

举报
brucexiaogui 发表于 2021/12/30 01:27:41 2021/12/30
【摘要】 构造方法、static、匿名对象、封装、javaBean、this、package、import、访问权限   构造方法: 1. 创建对象 2. 为字段初始化 特点: 方法名和当期类名一样; 不允许定义返回值类型 每个类至少有一个构造方法:公共无参的 格式: public 类名(){} ...

构造方法、static、匿名对象、封装、javaBean、this、package、import、访问权限

 


  
  1. 构造方法:
  2. 1. 创建对象
  3. 2. 为字段初始化
  4. 特点:
  5. 方法名和当期类名一样;
  6. 不允许定义返回值类型
  7. 每个类至少有一个构造方法:公共无参的
  8. 格式: public 类名(){}
  9. 若显示的写了一个类的构造方法,默认的就会被取消;
  10. 构造方法的重载:
  11. this([实参]);调用当前类的构造方法
  12. 注意: this([实参]);必须放在构造器的第一行;
  13. 我不想让外界创建对象:
  14. 此时只需要把构造方法 private 修饰;
  15. 不一定:学了反射,一切私有都是浮云;
  16. static :
  17. 表示这一类事物的特征/状态或行为;
  18. 特点:
  19. 1. static 修饰的成员随着类的加载而加载;
  20. 2. 优先于对象的存在;
  21. 3. 被所有对象所共享;
  22. 4. 可以直接使用类名调用;
  23. 使用 static 修饰的方法或字段或内部类: 类成员
  24. 没有使用 static 修饰的方法或字段或内部类: 实例成员
  25. 调用类成员:
  26. 1.该成员所在类的类名.类成员;
  27. 2.该成员所在类的一个对象.类成员;(不建议使用, Java在底层也是把对象给转成类的)
  28. 在实例方法里能不能调用类成员? YES
  29. 在静态方法里能不能调用类成员? YES
  30. 调用实例成员:
  31. 该成员所在类的一个对象.实例成员;
  32. 不能直接使用类名调用;
  33. 在实例方法里调用实例成员? YES
  34. 在静态方法里调用实例成员? NO
  35. 匿名对象:
  36. 一个没有名字的对象, 创建了一个对象出来,没有赋给一个变量;
  37. new Person();
  38. 特点: 只在堆里面开辟存储区域,
  39. 只能使用一次, 使用完就被销毁了;
  40. ...main...
  41. {
  42. Person p = new Person();
  43. show(p);//必须传入一个Person对象
  44. //
  45. show(new Person());
  46. }
  47. static void show(Person p)
  48. {
  49. }
  50. 封装:
  51. 1.把状态和行为看做是一个整体,放在一个独立的模块(类)中;
  52. 2.把不想让外界知道的信息给隐藏起来,只提供外界所关心的方法;
  53. 在程序里的体现:
  54. 类里面所有的字段统统给私有起来,(使用private修饰);
  55. 每一个被私有化起来的字段,一般都得提供一对 getter/setter
  56. private String name;
  57. getter: 获取字段的值
  58. public String getName()
  59. {
  60. return this.name;//return name;
  61. }
  62. setter: 给一个字段设置一个值
  63. public void setName(String n)
  64. {
  65. this.name = n;
  66. }
  67. public void setName(String name)
  68. {
  69. //name = name;
  70. //name = this.name;//ERROR
  71. this.name = name;
  72. }
  73. boolean 类型没有getXXX方法,取而代之 isXXX
  74. JavaBean的规范:
  75. 1.保证每一个类都有一个无参的公共的构造方法
  76. 2.每一个字段都得私有化起来
  77. 3.私有化起来之后,必须提供getter/setter
  78. 怎么去写getter/setter?
  79. 1.若字段的第二个字母是小写的话,那么就直接把字段的第一个字母大写,然后加在gett或set后面
  80. 2.若字段的第二个字母是大写的话,那么就直接把字段加在get或set后面
  81. private String cPU;//故意写的
  82. public String getcPU()
  83. {
  84. return cPU;
  85. }
  86. public void setcPU(String cPU)
  87. {
  88. this.cPU = cPU;
  89. }
  90. 属性:什么才是真正的属性呢? 不是字段,不能把字段成为属性
  91. 是根据getter与 setter决定的:
  92. this: 表示当前对象
  93. 谁调用方法谁就是当前对象
  94. this.字段
  95. this.方法
  96. this(参数);//构造器调用构造器
  97. thisstatic 不能共用
  98. // 一个对象调用OOXX方法之后,又继续调用OOXX方法,如此循环...
  99. //链式编程
  100. p.show().show().show().show();
  101. class Person
  102. {
  103. public Person show(){
  104. //return Person的对象;
  105. return this;
  106. //返回调用者对象
  107. }
  108. }
  109. //show()必须得让Person的一个对象来调用
  110. new Person().show().show();
  111. package 表示包:
  112. 给一个类声明一个包:
  113. 在这个类的源文件的第一行
  114. package 包名.子包名...;
  115. 全限定名: 包名.子包名.....类名
  116. 编译:javac -d . 源文件.java
  117. 运行:java 全限定名
  118. 包名必须符合标识符: 全小写,不能使用 jdk里面的包名
  119. cn.itcast.cd.项目名.模块名.组件名
  120. cn.itcast.cd.erp.crm.util
  121. jdk常见的包;
  122. java.lang;//Java核心包 使用这个包下的类的时候,不需要我们手动的去导入需要使用的类
  123. java.util;//Java工具类包
  124. import: 表示 去哪个包下去找使用到的类;
  125. 存放位置: 存放于 类的声明之前, 放在 package 的后面;
  126. 使用: java.util.Date
  127. import java.util.Date;
  128. import java.util.*; 去java.util包去找你当前源文件需要使用到的类;
  129. *表示类,
  130. 不能表示java.util下的子包的类;
  131. Java里四大访问权限修饰符:
  132. 当前类 当前包 子类 任何地方
  133. private YES
  134. default(不写访问权限) YES YES
  135. protected YES YES YES
  136. public YES YES YES YES

 

文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/81564567

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。