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笔记7-Object类之toString方法和equals方法


下一篇:JAVA笔记10__Math类、Random类、Arrays类/日期操作类/对象比较器/对象的克隆/二叉树