Java基础之二、类的知识

2020-02-09 16:03:08来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

Java基础之二、类的知识

类定义---方法及其处理的数据对象的集合结构

将现实的对象(物体)和概念映射到程序中的对象(变量)中

1:使用new运算符创建的类类型的主体称为实例,创建实例的操作称为实例化,

  new Account()实例化了一个Account实例;

2:对象就是对程序运行时动态创建的主体的总称

3:类实例中的字段,即实例变量,会初始化为默认值

4:类结构

 原则上所有的字段都应该设为私有,未指定private的字段默认访问都是对包内部公开的

 将字段设为私有,防止外部访问,使方法和字段紧密结合称之为封装

5:构造函数的作用就是正确的初始化实例,防止初始化不完整或者不正确

 声明类类型的时候一定要提供构造函数,如果类中未定义,会默认定义一个空的构造函数

 构造函数不是方法,不能通过实例.构造函数()访问

6:方法和消息

 实例方法的调用可表示为向对象“发消息

7:标识符命名

 类:大驼峰(首字母大写);接口:大驼峰(首字母大写),表示动作的接口名称时形容词。表示(“可……的”)接口以”……able“结尾,例如Cloneable,Runnable;

 方法:小驼峰(首字母小写);字段:小驼峰(首字母小写);常量:全部大写,多个单词之间用_分隔;局部变量或形参:小驼峰(首字母小写)

8:方法访问器

 用于获取字段值的方法称为getter方法,用于设置字段值的方法称为setter方法,两者统称为访问器(accessor)

 建议将字段abc的setter名设为setAbc,getter名设为getAbc,符合命名规范。另,如果abc是boolean型,一般是用isAbc作为方法名

9:如果在字段声明赋初始值,字段在创建实例就会被初始化值;

10:在构造函数内部可以使用this(……)来调用当前类中的其它重载的构造函数;必须在构造函数的开头运行;

11:请不要返回引用类型的字段值,因为外部能通过该引用值间接改写值;

12:类变量 -声明中加上static的字段就是类变量(静态字段)。类名.类变量或者实例变量.类变量;

13:如果常量需要提供给类使用者,请以public且final的类变量形式进行提供;

14:类方法(静态方法)-方法加上static的方法,调用类名.方法名();类方法中仅允许访问类变量、类方法;(类方法中可以使用实例的方法);

15:类初始化器-在类被初始化也被称为静态程序块或static程序块,只执行一次;类初始化器中不允许return\this\super

 

 下图两种初始化类变量

 

 16:实例初始化器-用于初始化实例,在构造方法之前执行,每次实例化都会执行一次

 

 17:包--将类集中起来进行封装;下图中p.Type称之为完全限定名,Type称为简名

  包的作用:1:避免命名冲突;2:根据特征分类;3:封装(访问控制)

  包的命名规则:小驼峰(首字母小写)

 

 

18:类型的导入

  1:单一导入import 完全限定名;2:按需导入import 包名.*      

        在按需导入不可以导入不同层次的包中的类型名称,例如包结构a.b.c.……;import a.*仅导入a包中的类型,b及字包中的不会导入,如需导入b中的类型:import a.b.*

19:静态导入:类变量,类方法(静态导入一般不建议)

  1:import static 类型名称.标识符名称;2:import static 类型名称.*

 

19:源文件和类文件可以在不同目录中

20:类和成员的访问属性

  从包的角度来看,类的访问属性1:public类(使用与包无关);2:非public类(默认)(仅在所属包内使用);

 

 21:成员访问控制

  类变量、实例变量、方法都是类成员;

  公开(public)-包的内外部都可以使用;

  限制公开(protected)-包内部和包外部的子类;

  默认(defautl)-包内部

  私有(private)-类内部

 番外:

  1:初学者在包使用中的一个问题“使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析

     注意原因时在执行的时候会严格以当前用户路径为基础,按照package指定的包路径转化为文件路径去搜索class文件。

     参考这篇(https://www.cnblogs.com/guohu/p/11101285.html)作者写的很详细

  2:判断两个对象是否相等,主要基于equals方法和hashcode方法

   参考这篇(https://blog.csdn.net/u013063153/article/details/78808923)


原文链接:https://www.cnblogs.com/sun-null/p/12283773.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:并发队列之ArrayBlockingQueue

下一篇:JDBC连接MySql例子