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)
Java基础之二、类的知识的更多相关文章
- Java基础 之二 类和对象
1.基础概念 1) 概念 简单来说,类是具有相同特征事物的抽象,比如有轮子的都可以抽象为车:对象则可以看做类的具体实例,比如创建一个法拉利的车,就是车这个类的实例. 抽象.封装.继承.多态是类的四个特 ...
- JAVA基础(二)—— 常用的类与方法
JAVA基础(二)-- 常用的类与方法 1 Math类 abs ceil floor 绝对值 大于等于该浮点数的最小整数 小于等于该浮点数的最大整数 max min round 两参数中较大的 两参数 ...
- java基础(二章)
java基础(二章) 一,变量 1.变量是内存中的一个标识符号,用于存储数据 2.变量命名规则 l 必须以字母.下划线 _ .美元符号 $ 开头 l 变量中,可以包括数字 l 变量中,不能出现特 ...
- Java基础十二--多态是成员的特点
Java基础十二--多态是成员的特点 一.特点 1,成员变量. 编译和运行都参考等号的左边. 覆盖只发生在函数上,和变量没关系. Fu f = new Zi();System.out.println( ...
- Java基础-DButils工具类(QueryRunner)详解
Java基础-DButils工具类(QueryRunner)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC ...
- Java实习生常规技术面试题每日十题Java基础(二)
目录 1. JAVA 的反射机制的原理. 2.静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同? 3.如何将String类型转化成Number类型. 4.什 ...
- Java基础之File类的使用
Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法 ...
- java基础-多线程二
java基础-多线程二 继承thread和实现Runnable的多线程每次都需要经历创建和销毁的过程,频繁的创建和销毁大大影响效率,线程池的诞生就可以很好的解决这一个问题,线程池可以充分的利用线程进行 ...
- Java基础系列二:Java泛型
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.泛型概述 1.定 ...
- Java基础:Object类中的equals与hashCode方法
前言 这个系列的文章主要用来记录我在学习和复习Java基础知识的过程中遇到的一些有趣好玩的知识点,希望大家也喜欢. 一切皆对象 对于软件工程来说面向对象编程有一套完整的解决方案:OOA.OOD.O ...
随机推荐
- 初学者学Java常遇到的问题,我都给你回答了!
前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 春节在家刷知乎,看到了一个知乎的问题:<学 ...
- [HAOI2015]树上操作(树链剖分)
[HAOI2015]树上操作(luogu) Description 题目描述 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个操作,分为三种: 操作 1 :把某个节点 x 的点权增 ...
- 工具之wc
wc命令的功能为统计指定文件中的字节数.字数.行数, 并将统计结果显示输出. 语法:wc [选项] 文件… 说明:该命令统计给定文件中的字节数.字数.行数.如果没有给出文件名,则从标准输入读取.wc同 ...
- mysql--->mysql慢查询
简介 > 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能 参数及命令说明 查看慢查询是否开启和日志存储地址 show var ...
- 牛客网在线编程_有序矩阵中第K小的元素
Leetcode378原题,所以一样没有数据范围...( log(max-min)二分答案,然后NlogN二分每一行求出小于答案的元素个数,为了保证二分的答案在矩阵中,二分写的要和平常不太一样,最后输 ...
- 高阶函数及 map、reduce、filter 的实现
博客地址:https://ainyi.com/85 2020 开年国家经历了不少困难,最为凶猛的局势就是新型冠状病毒的蔓延,国务院最终决定春节假期延长至==2 月 2 号==:公司决定 3 - 7 号 ...
- learn more ,study less(三):超越整体性学习
高效率的学生 成为一名高效率学生或是自学者需 要掌握减少花在书本上时间的艺术,我上学时,除了全日制的上课学习,业余时间经营一家 企业,每周写大约 7000 字,健身以及主持一家演讲俱乐部,尽管如此,我 ...
- 脚本在Shell可以执行成功,放到crontab里执行失败
一.背景 自己写了个监控MGR状态的脚本,直接在Linux的Shell环境下可以执行成功,但是只要放到crontab里执行,就失败,脚本内容如下 #!/bin/bash MAIL_ADDR=`cat ...
- BFS(广度优先搜索华容道游戏)--11--BFS--蓝桥杯卡片换位
题目描述 你玩过华容道的游戏吗?这是个类似的,但更简单的游戏.看下面 3 x 2 的格子 +---+---+---+ | A | * | * | +---+---+---+ | B | | * | + ...
- <状压DP>solution-POJ3311_Hie with the Pie
Hie with the Pie Description The Pizazz Pizzeria prides itself in delivering pizzas to its customers ...