> 技术文档 > Java中类和对象(完):封装和静态成员变量

Java中类和对象(完):封装和静态成员变量

由于类和对象的内容较多,且都是一些概念和知识点,这篇文章会继续深入来讲,上节课传送门:

https://blog.csdn.net/nsjqj/article/details/150004383?fromshare=blogdetail&sharetype=blogdetail&sharerId=150004383&sharerefer=PC&sharesource=nsjqj&sharefrom=from_link

封装

封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。

public是公开,别的方法是会有访问权限的;private 是私人,只在类中、主方法外边才会有访问权限。

以下是在IDEA(jdk-17下)创建过程:

注意:package 里的语句是倒着写的!

在Java中,声明类时指定其所在的包(Package)主要有什么作用呢?
 
1. 避免类名冲突

Java中允许不同包存在同名的类,通过包名可以唯一区分它们。例如, java.util.Date (工具类)和 java.sql.Date (数据库日期类)同名,但因包不同而不会冲突。
 
2. 实现代码的逻辑组织
包可以按功能、模块或业务逻辑对类进行分组,类似文件夹对文件的管理。,提高代码可读性和维护性。
 
3. 控制访问权限
Java的访问修饰符(如 default 权限)与包相关:被 default 修饰的类、方法、变量,仅能被同一包内的其他类访问,实现了包级别的访问控制。

4. 便于大型项目协作
在多人协作的项目中,通过包结构(如按团队、模块划分)可以明确代码归属,避免开发冲突,规范代码组织方式。
 

静态成员变量(static)

先来看几张图,了解一下概念。

总结:

接下来,举例一个程序:

直接在 System.out.println 后加上了className这个小驼峰命名的类变量(静态成员变量),就能直接调用。如图

r

使用时可能会报错的注意事项!!!:+

像我们之前在最开始的时候用的方法,当时只说了固定语法,并没有说明其中的含义,方法就是也用了 static 才不会出现报错,静态方法才可以引用静态方法。

总结:

关于静态成员变量的初始化,有以下几种初始化方式:

其中,就地初始化是指直接在static中进行赋值来初始化;

这是通过get  set  方法进行初始化。

关于代码块初始化,这是一个全新的概念,接下来用一张图会着重去讲:

相信看了图就能够很好的理解了。

toString构造方法

 在编写程序的时候,如果你没有自己调用toString方法,编译器会按照如下图左边的源代码默认给出一个toString方法,此时如果输出编译器给出的结果会是地址;但是如果自己事先编译出来了,那就会优先调用自己的

例题

接下来是一些例题,希望大家能去做:

问:最后得到的count 值是多少?

答:如下图所示

答案:C;import 语句不能导入指定的包。

答案:B;D虽然没有仔细去讲,但它也是属于这一类;而 this 则是引用类型的。

答案:B。A选项是普通方法调用时的用法,C选项后面章节会讲。

答案:count = 88;易错点:很多人会以为成员变量里面用了 private ,其实不然,private 是只能在类里面才能被调用,这道题把main程序放在了类里面,所以也可以被调用。

答案:B。两个都是static说明可以被调用,然而并没有加上public 或 private,即boolean默认值是false。

答案:D。

t.f = 3.0后没加上f或F,则默认是double,与上图的float不一致,A选项错误;

n被static 所修饰,不能用this,B选项错误;

m是被int修饰,int不属于类变量,不能用Test引用,C选项错误。

答:静态代码块先执行,所以是先执行cnt += 9,再执行cnt /= 3。即 9+6 = 15,15 / 3 = 5;答案选A。

 

答案:aaabbb。

以上就是本篇文章的全部内容。如有遗漏或错误,欢迎补充。

本篇文章的截图和课件均摘自  比特科技 。