JAVA笔记【类】
java的概述和编程基础在这里我就不过多的强调了,因为已经有学习C和C++的基础了,我在这里强调一下类和对象。
[一]类的定义:
Java类的定义包括类声明和类体两个部分,其中类体又包含变量声明,方法定义两个内容。
eg.
【访问修饰符】【类型修饰符】class <类名>{
【变量声明】;
【方法定义】;
}
1.类的声明
格式中的第一条语句为类的声明语句,所用的关键字class。
【访问修饰符】:在类的声明语句中,访问修饰符一共有2种,一种是Public,一种是缺省。
那这两种访问修饰符有什么区别呢?
public:表示公有的访问级别,也就是说他的开放性较强,可以被任何类所访问,在C++中,该修饰符在类中也经常被使用。
缺省:又称“包访问修饰符”,只允许包内中的类来访问他,也就是说,相对于public来说,他的安全性高了,不是所有的类都能访问他了。
2.类体
类体由一对大括号‘{ }’,及大括号之间的内容构成,类体内容一般包含两个部分,变量声明和方法定义。
①变量声明:
【访问修饰符】【类型修饰符】<数据类型><变量名> 【=[初始值]】;
访问修饰符:public,缺省,private,protected;
类型修饰符:static,final,缺省;
实例变量:缺省;
类变量:(也称静态变量),static;
最终变量:(也成常量),final;且final常常和static一起连用!
②方法定义:
【访问修饰符】【类型修饰符】<返回值类型><方法名>(参数列表){
}
定义格式中的第一条语句就是方法声明语句,在句中,需要指定方法的访问权限,类型,是否具有返回值,以及返回值返回的数据类型,同时还要声明用于传递数据的参数列表。
成员变量和局部变量:
成员变量变量和局部变量,就是全局变量和局部变量之间的关系,在C和C++中,都曾反复的强调,着这里我就不做过多的声明了。
[二].信息的隐藏和封装:
封装性是Java的主要特性之一,它包含了两层意思:一方面是数据及其相关操作被封装到一个对象中,从而保证了对象实现细节对外的隐藏;
另一方面,封装又可以通过访问机制,使得对象内的数据私有化,不至于暴露给其他对象,从而这些私有数据的访问则可以通过建立公有的方法来
实现,从而可以避免非法操作。
【我的理解】:通过对上面封装性的介绍,举个生活中小例子吧,笔记本这种工具我们现在基本上是人手都有,不乏有些人想去拆开笔记本看看这里面长什么样式的,但是大多数的人的水平有限,拆开了就很难在安装上了,所以电脑商为了防止这类事情的发生,就将其封装成了一个小的器件,(拿CPU来说吧,有的人看完CPU可能感觉挺好就放回去了,有的人看完了呢,哎,觉得这个东西挺有意思的,我还想继续拆开看看这个CPU的里面的电子元器件是什么,这样的多度的访问在一定程度就会导致CPU的功能损坏,),我把他里面的这些元器件的组成叫做封装,也就是通过封装将敏感的数据私有化,说的直白点就是不让你将CPU打开,看里面的构造,能我能不能使用呢,当然能,如果CPU不工作了,那我们的电脑可能也就伴随着瘫痪,大家可以赶紧看看自己的电脑能不能使用了~,回到我们的JAVA中,Java又是怎么实现访问(使用)的功能呢?
Java中公有方法来访问这些私有的数据,从而保证了信息的隐藏也是程序能够被访问...
Java通过访问器和设置器来实现这种功能的;
1.访问器:
访问器是用于获取实例变量的值,书写形式一般为 get变量名();
eg.
public int getMonth(){ //访问器中访问修饰符必须是公有的 ,
return month; //访问器的返回类型必须与实例变量的类恶一致;
}
2.设置器:
设置器用于设置实例变量的值,在设置的过程中可以使用一些判断语句来保证所设置的值的有效性。设置器的书写形式是 set变量名(参数);
public void setMonth(int m){ //设置器中的反问修饰符必须是公有的,且没有返回值;//实例变量必须与声明中的数据类型相一致
if(m<0 || m>12){
System.out.println(" *********** ");}
else{
month = m ; //将参数返回实例变量;
}
}
[三]方法重载
在Java中,方法的唯一标识符是方法名和参数列表。如果两个方法的方法名和参数列表完全相同,就是同一个方法。
重载分为构造方法重载和一般方法重载,在C和C++中也同样多次设及,不过多强调,
但需要注意的是:方法的返回值类型不能作为区别方法的标识,也就是说,如果仅仅是返回值不同,不能判定这两个方法是重载的关系!
【感言】:这是我第一次写博客,写的是Java基础中的类的一些知识点,如果有哪些地方写的不好,还请多包涵....
如果有兴趣的可以一起交流,蟹蟹!
JAVA笔记【类】的更多相关文章
- Java笔记—— 类与对象的几个例子
问题1 按要求编写java应用程序: 编写西游记人物类,属性有:身高,名字和武器.方法有:显示名字,显示武器. 在main方法中创建两个对象.猪八戒和孙悟空,并分别为他们的两个属性名字和武器赋值,最后 ...
- java笔记 -- 类与对象
封装: 从形式上看, 封装是将数据和行为组合在一个包中, 并对对象的使用者隐藏了数据的实现方式. 对象中的数据称为实例域, 操纵数据的过程称为方法. 对于每个特定的类实例(对象)都有一组特定的实例域值 ...
- 菜鸡的Java笔记 类图
类图 1.如何实现类图的描述 2.时序图的使用 从实际i的开发标准:应该在项目编写钱设计类图 而现在的开发大部分情况下, ...
- JAVA笔记10-抽象类
(1)abstrac关键字类修饰的类是抽象类,用abstract修饰的方法是抽象方法: (2)含有抽象方法的类必须被定义为抽象类: (3)抽象类必须被继承,抽象方法必须被重写(或者将子类也声明为抽象类 ...
- Java笔记---枚举类和注解
Java笔记---枚举类和注解 一.枚举类 自定义枚举类 方式一:JDK5.0之前自定义枚举类 class Seasons { //1. 声明Seasons对象的属性 private final St ...
- 疯狂java笔记(五) - 系统交互、System、Runtime、Date类
一.程序与用户交互(Java的入口方法-main方法): 运行Java程序时,都必须提供一个main方法入口:public static void main(String[] args){} publ ...
- (转)《深入理解java虚拟机》学习笔记5——Java Class类文件结构
Java语言从诞生之时就宣称一次编写,到处运行的跨平台特性,其实现原理是源码文件并没有直接编译成机器指令,而是编译成Java虚拟机可以识别和运行的字节码文件(Class类文件,*.class),字节码 ...
- Java笔记(十二)……类中各部分加载顺序及存放位置问题
什么时候会加载类 使用到类中的内容时加载,三种情况: 创建对象:new StaticDemo(); 使用类中的静态成员:StaticCode.num = 9; StaticCode.getNum() ...
- 《Java编程思想》读书笔记-类与对象
欢迎各位读者关注我的微信公众号,共同探讨Java相关技术.生命不止,学习不休! 也许你慢慢地对程序有了这样的认识:程序只是一些列带有方法的对象的组合,这些方法以其它对象为参数,可在任何地方返回,并发送 ...
- Java常用类学习笔记总结
Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...
随机推荐
- 比赛:小奔的方案 solution
题目 题目背景 有一个著名的题目: 五个海盗抢到了100个金币,每一颗都一样的大小和价值连城. 他们决定这么分: 1.抽签决定自己的号码 ------ [1.2.3.4.5] 2.首先,由1号提出分配 ...
- SpringCloud解析之Zuul(二)
本文基于Spring Cloud Edgware.SR6,Zuul版本1.3.1,解析Zuul的请求拦截机制,让大家对Zuul的原理有个大概的认识和了解.如有不对的地方,欢迎指正. 在上一期的Spri ...
- 理解 Spring 定时任务的 fixedRate 和 fixedDelay 的区别
用过 Spring 的 @EnableScheduling 的都知道,有三种方式,即 @Scheduled 注解的 fixedRate(fixedRateString), fixedDelay(fix ...
- PJzhang:python基础入门的7个疗程-five
猫宁!!! 参考链接:易灵微课-21天轻松掌握零基础python入门必修课 https://www.liaoxuefeng.com/wiki/1016959663602400 第十三天:代码组织 类是 ...
- MapRedue详细工作流程
MapRedue详细工作流程 简述 (1)客户端submit之前获取待处理的数据信息,根据参数配置,形成一个任务分配的规划. (2)提交切片信息到YARN(split.xml,job.split,wc ...
- java优化之 单例模式的优化
该分类下的文章均为笔者阅读<Java程序性能优化>(葛一鸣)一书之所理解.如有欠缺,还请大佬们指点.
- 深入了解数据校验:Java Bean Validation 2.0(JSR380)
每篇一句 吾皇一日不退役,尔等都是臣子 相关阅读 [小家Java]深入了解数据校验(Bean Validation):基础类打点(ValidationProvider.ConstraintDescri ...
- WGS84坐标与web墨卡托投影坐标转换
许久没有使用坐标转换,记忆有些模糊了,以后还是会用到,先将WGS84与web墨卡托转换复习一下: 1.84转web墨卡托 //核心公式 平面坐标x = 经度*20037508.34/108 平面坐标y ...
- Python基础之用户交互、流程控制、循环语句
python的简洁性真的令人叹为观止,没有JAVA那种输入还要导个包,不学不知道,一学吓一跳啊! 我在学这些基础的时候,会把python和java.c做对比,这样更好的理解记忆! 用户交互(输入) i ...
- sqlserver清除日志
在一次处理数据库日志已满的过程中,发现有的时候数据库日志不能清除,经实验,可以通过以下方式来完成. 使用exec sp_cycle_errorlog 来清除sql系统本身的临时日志. dump tra ...