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 ...
随机推荐
- python菜鸟入门知识
第二章 入门 2.1 输出 2.1.1print() 输出 print(12+21) print((12+21)*9) print(a) # 注意a不可以加引号 2.2变量 1.变量由字母,数字,下划 ...
- LeetCode第2题
// 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字.//// 如果,我们将这两个数相加起来,则会返回一个新的链表 ...
- HHyperledger Fabric 之 TLS (fabric-java-sdk)使用grpcs方式访问fabric
我在很多fabric的技术群中,很多使用javasdk连接fabric的同友,初始的时候很多都没有成功的使用TLS进行区块链交易: 是sdk不支持,还是我们没有找到解决方案? 其实不然,我这里使用的是 ...
- AndroidStudio使用genymotion模拟器
安装Genymotion之前首先要安装好virtualbox这个软件 virtual官方网站:https://www.virtualbox.org/ genymotion的官方网站: https:// ...
- js数字格式化(截断格式化或四舍五入格式化)
/*** * 数字格式化(适合金融产品截断小数位后展示) * @param num * @param pattern (标准格式:#,###.## 或#.## 或#,###00.00) * @para ...
- centOS7启动apache,报错Caused by: java.net.UnknownHostException: wshCentOS:
测试方法: ping 127.0.0.1 ping localhost 解决方案: vi /etc/hosts 把127.0.0.1和wshCentOS绑定就好 按 i 进入修改模式,按 esc 退出 ...
- spark 源码分析之七--Spark RPC剖析之RpcEndPoint和RpcEndPointRef剖析
RpcEndpoint 文档对RpcEndpoint的解释:An end point for the RPC that defines what functions to trigger given ...
- Android开发进阶——自定义View的使用及其原理探索
在Android开发中,系统提供给我们的UI控件是有限的,当我们需要使用一些特殊的控件的时候,只靠系统提供的控件,可能无法达到我们想要的效果,这时,就需要我们自定义一些控件,来完成我们想要的效果了.下 ...
- 关于定时器Scheduled(cron)的问题
定时器配置步骤参考:http://blog.csdn.NET/sd4000784/article/details/7745947 下面给出cron参数中各个参数的含义: CRON表达式 含义 & ...
- 使用Java 编写FTP中的长传文件和下载文件
实现FTP文件上传与下载可以通过以下两种种方式实现(不知道还有没有其他方式,),分别为:1.通过JDK自带的API实现:2.通过Apache提供的API是实现. 第一种方法:通过JDK自带的API实现 ...