zoukankan      html  css  js  c++  java
  • 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 hissuper

     

     下图两种初始化类变量

     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

  • 相关阅读:
    创建文件夹 文件File操作方法
    C#WinForm4张纸牌窗体设计
    b/s结构和c/s结构
    sql 中 时间只显示日期
    视图
    js获取字符串的字节数
    触发器
    将xml字符串转换成dataset
    sql 集合查询 数据更新操作语句
    带有ANY(SOME)或ALL谓词的字查询
  • 原文地址:https://www.cnblogs.com/sun-null/p/12283773.html
Copyright © 2011-2022 走看看