07封装丶静态和工具类Food丶馒头

1、封装:隐藏事物的属性和实现细节,对外提供公共的访问方式

2、封装的好处:

隐藏了事物的实现细节

提高了代码的复用性(同一段代码的多次使用的程度)

提高了数据的安全性

3、封装的原则:

所有的属性都要隐藏

实现细节要隐藏

对外提供公共的访问方式

代码示例

classDemo01_封装概述{

publicstaticvoidmain(String[]args){

test();

}

publicstaticvoidtest(){

inta=10;

a=20;

a++;

1、单词:私人的,私有的,私密的

2、可以修饰:

成员变量、成员方法、构造方法、内部类

3、效果:

所有被private关键字修饰的成员,只能在本类中被访问

4、private是封装的一种体现形式,并不代表封装的全部,只是封装中最严格的一种表现

classDemo02_private{

Personp=newPerson();

//p.name="zhangsanfeng";

//p.age=123;

p.speak();

classPerson{

privateStringname;

privateintage;

publicvoidspeak(){

System.out.println(name+"..."+age);

1、当属性被隐藏之后,就无法在外界直接访问了,如果不提供公共的访问方式,那么定义这些私有的成员变量,就没有任何意义了

2、set方法是用于给成员变量赋值;get方法用于获取成员变量的值

classDemo03_getset{

p.setName("张三疯");

p.setAge(-123);

System.out.println(p.getName()+"..."+p.getAge());

//提供修改name的set方法

publicvoidsetName(Stringn){

name=n;

//提供获取name的get方法

publicStringgetName(){

returnname;

//提供修改age的set方法

publicvoidsetAge(inta){

if(a>=0){

age=a;

}else{

thrownewRuntimeException("请回到火星上");

//提供获取age的get方法

publicintgetAge(){

returnage;

1、变量就近原则:

变量的使用:获取这个空间中的值,或者给这个空间赋值,不带数据类型

2、this关键字:

含义:表示本类当前对象的引用

解释:哪个对象来调用this所在的方法,this就表示哪个对象

作用:可以区分局部变量和成员变量重名的情况

说明:加上this的一定是成员变量,不加this的根据就近原则来判断

classDemo04_getset{

p.setAge(123);

Personp2=newPerson();

p2.setName("李四光");

p2.setAge(124);

System.out.println(p2.getName()+"..."+p2.getAge());

publicvoidsetName(Stringname){

this.name=name;

publicvoidsetAge(intage){

if(age>=0){

this.age=age;

1、构造方法:构造器,Constructor

2、作用:用于给成员变量赋值的一个方法。在创建对象的同时,就能给当前对象的成员变量赋值,等对象一创建完成,就已经有合理的属性值了。

3、构造方法定义格式:

1、构造方法的方法名称,必须和类名一模一样

2、构造方法没有返回值类型,连void也没有

3、所以不能有具体的返回内容

4、构造方法调用的说明:

1、构造方法不需要你手动调用,在创建对象的时候,由jvm自动调用

2、对象本身不能调用构造方法

3、构造方法只会在创建对象的时候,调用一次

classDemo05_构造方法{

//p.Person();

publicPerson(){

//System.out.println("构造方法被调用了");

name="zhangsanfeng";

age=123;

1、构造方法可以是有参数的,也可以是没有参数的

空参的构造方法,无法接受外界传入的数据,只能给成员变量赋固定的值

有参数的构造方法,可以接受外界传入的数据,可以根据外界传入的数据的不同,给成员变量赋不同的值

2、如果你没有手动的提供任何的构造方法,系统默认提供一个空参构造,空实现

3、如果你手动提供了任何一个构造方法,系统将不再提供任何构造方法

4、一般在类型中,既需要空参构造,也需要有参构造,需要都手动定义出来,形成了构造方法的重载

5、构造方法的重载:

方法重载:在同一个类中,方法名相同,参数列表不同,与返回值类型无关

构造方法重载;在同一个类中,方法名和类名一模一样,参数列表不同(空参和有参),构造方法没有返回值类型,所以肯定也和返回值类型无关

classDemo06_构造方法的注意事项{

Personp=newPerson("lisiguang",124);

Personp2=newPerson("wanglaowu",125);

p2.speak();

Personp3=newPerson();

p3.speak();

//name="zhangsanfeng";

//age=123;

publicPerson(Stringname,intage){

1、构造方法和set方法都可以给成员变量赋值,都是可以让外界简介的访问私有的成员变量。

2、不同点:

1、构造方法在对象创建的时候调用,set方法是在对象创建完成之后调用

2、构造方法由虚拟机自动调用,set方法是由对象调用

3、构造方法只能调用一次,用于给成员变量赋初始化值,set方法可以调用多次,用于给成员变量修改值

3、使用场景的比较:

1、如果需要在创建对象的时候,给对象赋一个初始化值,使用构造方法

2、如果需要在后期频繁修改成员变量,就使用set方法

classDemo07_构造方法和set方法{

Personp=newPerson("zhaoliu",26);

p.setAge(27);//在原有对象的基础上,修改年龄属性

//创建一个新的对象,将地址复制给p这个引用

//p不指向原来的老对象了,原来的对象就变成了垃圾,很快被回收掉

//这种方式不是修改年龄,而是杀人

p=newPerson("zhaoliu",28);

1、创建对象的过程中,会给成员变量进行3次初始化的赋值,分别是:

默认初始化:给成员变量赋默认的初始化值

显式初始化:在定义成员变量的时候,就给成员变量赋相同的初始化值

构造方法初始化:在调用构造方法的时候,根据构造方法的实际参数的值,给成员变量赋值

显式初始化在后,默认初始化在前

显式初始化在前,构造方法初始化在后

2、创建对象的过程总结:

1、将要创建的对象所属的类,加载到方法区

2、在栈内存中,创建该类型的引用

3、在堆内存中,开辟一块存储空间,用于存储该对象的数据

4、默认初始化赋值

5、显式初始化赋值

6、构造方法初始化赋值

7、将对象的地址,赋值给栈内存中的引用

3、图示:

classDemo08_创建对象的内存理解{

Studentstu=newStudent("zhouqi",27);

//Studentstu=newStudent();

stu.speak();

classStudent{

privateStringid="9527";

privateintscore=66;

publicStudent(){}

publicStudent(Stringid,intscore){

this.id=id;

this.score=score;

System.out.println(id+"..."+score);

1、没有静态的情况:

同一个country属性,相同的值,在不同的对象中,存储了很多份,浪费内存空间

在维护这个项目时,如果需要修改country属性的值为Japan,所有对象的country属性都需要修改

图示:

2、有静态的情况

相同的一个属性没有存储到堆内存的对象中,而是存储到了类的字节码中

所有的对象都可以访问类的字节码中的静态变量

代码示例1

classDemo09_没有静态的情况{

Actora1=newActor();

a1.name="苍老师";

a1.country="日本";

a1.act();

Actora2=newActor();

a2.name="加藤老师";

a2.country="日本";

a2.act();

classActor{

Stringname;

Stringcountry;

publicvoidact(){

System.out.println(name+"..."+country);

代码示例2

staticStringcountry;

classDemo10_有静态的情况{

a2.country="倭";

1、加载的时机:加载,就是开辟内存空间并且赋值

随着类的加载而加载

2、优先于对象存在

3、静态变量被所有该类对象共享

4、代码方面:

静态变量属于类,可以使用类名直接访问,也可以使用对象名访问。建议使用类名访问

格式:类名.静态变量名

classDemo11_静态变量的特点{

BjJava0114Student.manager="zq";

BjJava0114Student.teacher="lc";

BjJava0114Studentstu1=newBjJava0114Student();

stu1.name="zhangsan";

//stu1.manager="zq";

//stu1.teacher="lc";

BjJava0114Studentstu2=newBjJava0114Student();

stu2.name="lisi";

System.out.println(stu2.name+"..."+stu2.manager+"..."+stu2.teacher);

classBjJava0114Student{

Stringid;

Stringgender;

intscore;

staticStringmanager;

staticStringteacher;

1、静态变量和静态方法:

静态变量:变量属于类,不会随着对象的不同而不同,静止不变的状态,称为静态

静态方法:方法属于类,不会随着对象的改变而改变运行内容,静止不变的执行内容

2、静态方法:

加上了static关键字的方法,就是静态方法

3、静态方法的访问方式:

和静态变量相同,既可以使用对象名来访问,也可以使用类名访问

4、静态方法访问的注意事项:

1、静态方法不能访问非静态的变量,原因:

静态方法可以在没有创建对象的时候就使用类名来访问

非静态变量必须在创建对象之后才存在

如果静态方法可以访问非静态变量,就相当于在创建对象之前就可以访问创建对象之后才有的数据

明显有矛盾

2、静态方法不能访问非静态方法,原因:

静态方法可以在没有创建对象的时候直接使用类名访问

非静态方法可以访问非静态变量

如果静态方法可以访问非静态方法,就相当于简介的让静态方法访问了非静态的变量

刚才已经说过,静态方法不能访问非静态变量。有矛盾

3、静态方法不能访问this关键字,原因:

this关键字属于非静态的内容,对象创建成功之后,才有的数据

静态方法可以在对象创建之前调用。

5、总结:

静态不能访问非静态

classDemo12_静态方法的注意事项{

Testt=newTest();

t.test1();

classTest{

publicstaticvoidtest1(){

//System.out.println(a);

test2();

publicvoidtest2(){

System.out.println(666);

1、概念:所属不同

非静态变量属于对象,对象变量

静态变量属于类,类变量

2、内存:空间存储地址不同

非静态变量属于对象,存储在堆内存的对象中

静态变量属于类,存储在方法区的字节码对象中

非静态变量属于对象,随着对象的创建而存在,随着对象变成垃圾被回收而消失

静态变量属于类,随着类的加载(运行某个类、创建某个类的对象、调用某个类的静态方法、反射方式、加载某个子类的时候父类也会被加载)而加载,随着类的消失而消失

4、代码:访问方式不同

非静态变量只能使用对象名来访问

静态变量既可以使用对象名访问,也可以使用类名访问,建议使用类名访问

类名.静态变量名

类名.静态方法名()

1、主方法:

2、public:

公有的,公共的,在任何位置都可以访问这个方法

主方法是被jvm虚拟机调用的,其他语言在调用java代码,需要最大的访问权限

3、static:

静态的,不需要创建主方法所在类的对象,也可以访问这个方法

C语言不会去直接创建对象,访问某个方法,所以只能访问静态的方法

4、void:

方法的返回值类型为空,不需要给jvm返回一些数据,即使返回了一些数据,没用

5、main:

方法名称,必须写成main,因为在jvm虚拟机中,写死了就是要访问main方法

6、String[]args:

主方法的形式参数,是字符串类型的数组,数组中的每一个元素都是一个字符串

classDemo13_主方法的解释{

for(inti=0;i

System.out.print(args[i]+"");

System.out.println();

1、工具类的定义:没有数据、只有方法的类

定义了一个类,类中都是一些具有某些独立功能的方法

不会使用这个类创建对象

类中不会定义任何的成员变量

2、操作数组的工具类:ArrayTool

3、作用:能提供操作数组的各种方法

4、功能:

遍历数组

获取最大值

获取最小值

数组某两个元素的交换

数组的反转

5、私有化构造方法:

这类是工具类,没有成员变量和其他数据,所以不需要创建对象

私有化构造方法,避免创建对象浪费内存空间

privateArrayTool(){}

1、帮助文档:

写好了代码之后,编译生成ArrayTool.class的字节码文件

给了使用者,使用者无法阅读其中的代码的,也就不知道里面有哪些功能

需要给使用者提供一个帮助文档

2、加上文档注释:【重点】

1、文档注释:用于生成帮助文档的注释

/**

文档注释的内容

*/

2、文档注释中的注解:被编译器和jvm识别和运行的一些内容

@author作者

@version版本号

@param参数名称参数意义解释

@return返回的数据的含义

3、使用javadoc生成帮助文档:

javadoc-d./doc-author-versionArrayTool.java

一个数组的工具类,提供了很多操作数据的实用方法

@authorlc

@versionv1.0

publicclassArrayTool{

用于遍历数组

@paramarr需要遍历输出的数组名称

publicstaticvoidprintArr(int[]arr){

for(inti=0;i

System.out.print(arr[i]+"");

获取数组的最大值

@paramarr需要获取最大值的数组

@return参数数组中的最大值

publicstaticintgetMax(int[]arr){

intmax=arr[0];

for(inti=1;i

if(arr[i]>max){

max=arr[i];

returnmax;

获取数组的最小值

@paramarr需要获取最小值的数组

@return参数数组中的最小值

publicstaticintgetMin(int[]arr){

intmin=arr[0];

if(arr[i]

min=arr[i];

returnmin;

交换指定数组中,指定的两个索引的元素

@paramarr需要交换元素的数组

@parama第一个元素的索引

@paramb第二个元素的索引

publicstaticvoidswap(int[]arr,inta,intb){

inttemp=arr[a];

arr[a]=arr[b];

arr[b]=temp;

反转数组

@paramarr需要反转的数组

publicstaticvoidreverse(int[]arr){

for(inti=0,j=arr.length-1;i

swap(arr,i,j);

classDemo14_ArrayToolTest{

int[]arr={66,22,88,99,11,-66};

ArrayTool.printArr(arr);

System.out.println("最大值:"+ArrayTool.getMax(arr));

System.out.println("最小值:"+ArrayTool.getMin(arr));

ArrayTool.swap(arr,0,arr.length-1);

ArrayTool.reverse(arr);

ArrayToolat=newArrayTool();

将来很少生成帮助文档,但是频繁使用别人制作好的帮助文档

2、使用:在线文档、离线文档

1、在线文档:

百度api

找到jdk中文版

根据要使用的类型,推断在哪个包中

到这个包中寻找你要使用的类型

观察包、是否是抽象类、工具类,阅读信息

根据自己需要使用的功能,查找需要的方法

找到方法之后,阅读方法介绍,进行测试

2、离线文档:

直接打开

点击显示----索引----输入要查询的类型

classDemo15_工具类的使用{

//生成一个1-100的随机数

doublea=Math.random();//0.00000-0.999999

doubleb=100*a;//0.00000-99.99999

intc=(int)b;//0-99

intd=c+1;//1-100

System.out.println(d);

1、Arrays工具类:

提供了很多操作数组的实用方法

2、功能:

1、intbinarySearch(int[]arr,intkey):使用二分查找的方式,返回key在arr中的索引

2、booleanequals(int[]arr1,int[]arr2):比较两个数组中的元素是否相同

3、voidfill(int[]arr,intvalue):将arr数组中的所有位置为填充为value值

4、voidsort(int[]arr):将arr进行从小到大的排序

5、StringtoString(int[]arr):将arr中的内容以字符串的形式进行返回

THE END
1.在线文档如何提高工作效率?本文介绍了在线文档提高工作效率的方法,包括实时编辑、多人协作、版本控制等功能的应用。通过实际案例和经验分享,为读者提供了参考和建议。 一、在线文档的优点 1. 实时编辑 在线文档支持实时编辑,团队成员可以同时编辑文档,实时看到其他成员的修改,避免版本冲突。 https://box.lenovo.com/news/detail/d3f84e63007c5e09de065dfdfc654823.html
2.轻松协作和共享:在线文档的利与弊在数字化时代,在线文档成为企业高效协作和共享文件的主要方式。在线文档不仅可以提高工作效率,还可以方便地共享和协作。本文将探讨在线文档的优点和缺点,带给读者更多的思考。 一、优点 1.高效协作:在线文档可以多人协同编辑和评论,从而达到高效的协作效果。只要各成员有权限访问文档,即可实时查看和编辑,减少了文件传递中https://www.filez.com/news/detail/af9949124b23fdd024440714528a77d8.html
3.在线工具:在线工具有哪些实用的功能和优势?在线工具在教育领域的应用非常广泛,如在线教育平台、在线考试系统、课堂互动工具等。这些工具为教师和学生提供了更加丰富的教学资源和互动方式,有助于提高教学质量和学习效果。 2、企业办公 随着远程办公的兴起,企业越来越依赖于在线工具进行日常办公和协作。如在线文档处理、云存储、沟通与会议等工具都成为了企业办公的标https://www.batmanit.cn/blog/a/3826.html
4.在线文档有什么好处?There is no doubt that computer is good for our study. Firstly, it can help us look up new https://ask.zol.com.cn/x/24681223.html
5.快手服务号有什么用?开通快手服务号有什么好处快手运营自媒体在线预约商家服务,方便用户快速联系商家并体验服务,更加立体地增强用户和商家的接触面。 19、蓝V权益 到此这篇关于快手服务号有什么用,开通快手服务号有什么好处的文章就介绍到这了,更多相关快手服务号内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!https://www.jb51.net/zimeiti/798215.html
6.网络在线支付的好处英语作文英语作文.docx该【网络在线支付的好处英语作文 - 英语作文 】是由【或许我是传奇】上传分享,文档一共【2】页,该文档可以免费在线阅读,需要了解更多关于【网络在线支付的好处英语作文 - 英语作文 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到https://www.taodocs.com/p-924369742.html
7.怎么提取PDF中的文字?在线网站教你PDF文档识别万能文字识别在线网站提供安全保障的云存储,上传后的文件将于24小时后自动删除,无人能够查阅或下载这些文件,保障大家的内容隐私安全。 选择万能文字识别在线网站实现PDF文档识别的好处? 1、方便快捷:通过上传PDF文档,就可以快速地将其中的文字内容提取出来,无需手动输入和复制粘贴。 https://www.wannengshibie.com/help/805.html
8.怎样把excel表格转成在线文档转换excel表格为在线文档教程将excel表格转换为在线文档的好处 转换excel表格为在线文档可以带来许多好处。首先,它使你可以轻松与他人共享和传播文档。在线文档更易于访问和打开,无需安装特定的软件。其次,在线文档可以方便地进行编辑和保存,而不会影响原始文档的格式和结构。 此外,将excel表格转换为在线文档还可以提高文档的安全性。在线文档可以设定https://www.huoban.com/news/post/144406.html
9.腾讯文档在线编辑怎么使用腾讯文档在线编辑使用教程作为一款在线文档软件,有很多好处,能帮助用户完成文档的编辑,快速创建新文档,并且可以分享,那么文档在线编辑怎么使用呢?下面跟着小编一起来看看吧。 一、腾讯文档在线编辑方法步骤 2、进入首页后点击立即使用,并登录。 3、在弹出的界面点击新建→想要创建的文档。 https://m.oyooyo.cn/news/93000.html
10.飞书多维表格提升效率二、使用飞书多维表格运用和管理函数的好处 数据管理灵活性:多维表格作为一种在线数据库,不仅存储数据,还能进行分析和可视化。它允许用户通过公式和函数来实现复杂的数据处理和分析,支持跨表引用和嵌套调用,可满足Excel覆盖的各种业务需求。 自动化能力:多维表格支持自动化流程,通过设定触发条件和执行操作,系统能自动根据数https://www.feishu.cn/content/feishu-multidimensional-spreadsheet-tools
11.在线API接口文档生成一站式解决您的API文档需求为什么需要在线API接口文档生成工具? 在开发和集成应用程序时,API接口文档对于开发人员来说是至关重要的参考资料。它们描述了如何使用和调用API,包括请求和响应的参数、数据格式以及其他相关信息。使用在线API接口文档生成工具可以带来以下好处: 节省时间和精力:通过自动化生成文档,您可以节省大量编写和维护文档的时间和精力https://www.eolink.com/news/post/83458.html
12.图文档管理软件有哪些好处图文档管理软件可以帮助企业和个人有效地组织、存储、共享和保护各类文档和文件,其好处包括: 集中存储与便捷访问 图文档管理软件将所有文件集中存储,便于用户随时随地访问,避免了文件分散在不同设备或网络位置的问题。 权限管理和数据安全 该类软件通常提供详细的权限管理,用户可以控制谁能查看、编辑或删除文档,从而有效保http://www.adoa8.com/quetal.aspx?id=697&kindid=2
13.4万字长文吐血整理LaTeX基础使用助你熟练玩转LaTeX浮动体的好处 (1)可以给图表添加标题、标签(方便引用),而普通的图片是没有这个作用的。 (2)可以给图片自动编号 使用 浮动体环境常用的有figure和table环境,前一节的tabular可以放在table环境里面。 figure table 效果: . 引用浮动体 如果需要在文档其余地方引用浮动体,可以使用 https://developer.aliyun.com/article/1444520
14.怎么把快手里视频提取出来三、怎么把别人的文档提取空白表格出来? 1. 确定文件类型:首先,确定文件的类型,例如Excel、CSV、PDF等。不同类型的文件可能需要不同的提取方法。 2. 使用适当的工具:根据文件类型选择合适的工具进行提取。对于Excel文件,可以使用Microsoft Excel或Python中的pandas库;对于CSV文件,可以使用文本编辑器或Python中的csv库;https://tool.a5.cn/article/show/113995.html
15.公司要开通企业微信吗?开通企业微信有什么好处?音视频会议:异地、出差远程开会,不错过任何一个项目讨论,开会期间支持演示文档 在线直播:给员工培训,教育机构学校给学生上网课,零售公司给客户直播带货 文档协作:微文档内的各种文档表格模板,可用来收集员工出行健康状况,工作清单、活动策划案,分配工作任务等,支持多人同时在线编辑,完成团队协作 https://maimai.cn/article/detail?fid=1447854833&efid=BHXrm96k3xCUPU4iIFuzKw
16.泛微在线文档进行分层拆分后,业务具体的细节代码,被拆分到了各个实现类或者方法中(在对应的类和方法中,还可以根据各自的维度,再进行拆分),这样的好处有: 1、能支持更多的无侵入二开场景 无侵入二开切入点由2个,变成了10个,可以实现更多的业务场景,反面案例中不太好实现的二开点,也可以很方便实现了 2、功能单元支持复用,可https://e-cloudstore.com/doc.html?appId=4ae574bac36c4493bb627e64bea9c4d8
17.如何用永中PDF在线工具集将PDF文件添加文字和图片水印PDF加水印有以下几个主要好处: 保护文档的版权:通过添加水印,可以在PDF文档中嵌入固定的文字或图形,例如“仅供内部使用”、“未经授权禁止复制”等,这样可以提醒阅读者不要私自复制或传播文档。如果文档被盗用或泄露,可以通过水印来追踪责任人并维护自己的权益。 https://www.saixiao.com/article-2397.html
18.飞书云文档导出markdown飞书云文档是一款功能强大的在线文档编辑工具,它允许用户创建、编辑、查看和共享文档。飞书云文档支持导出为多种格式,其中包括markdown。 导出markdown格式的好处是可以将文档内容保存为纯文本文件,简洁清晰,方便后续编辑和处理。使用markdown格式可以使文档的结构和格式易于阅读和理解。 https://wenku.csdn.net/answer/3odg5942k4
19.在线PDF元数据编辑器。免费编辑PDF元数据。然后,您可以将完成的文档下载到手机上。 在线服务 - 2PDF 是一项基于浏览器的服务,可用于即时 PDF 转换、合并、拆分、提取、旋转、元数据编辑等。 它是如何工作的? 2PDF 就像任何顶级 PDF 编辑器一样运作,不同的是它是在线的并且完全免费。一旦进入网站,您可以选择您想要的 PDF 工具,这将启动服务。接下来,https://2pdf.com/zh/edit-metadata/
20.pdf在线转换器详细教程pdf转换器pdf在线转换器详细教程 PDF格式文档好处自不必多说,但倘若从中提取些资料,确实麻烦地可以。回忆起自己的第一份工作就是处理一些PDF文件,痛苦地要命,竟然想出用截图粘贴的办法来实现PDF转Word,够傻了。最近的一份工作相关的工作。为了不再被折磨,花了一个通宵的时间研究PDF和Word文件的转换,找到了一下方法,与大家http://blog.chinaunix.net/uid-29812938-id-4656609.html
21.企业文档管理2024年企业必备:顶级文档管理系统(DMS)全解析通过对访问服务器的终端进行安全控制,在洞察眼MIT系统文档加密系统中解密网关可以实现服务器数据下载到本地强制加密,防止数据下载外泄,加密文件上传至服务器自动解密,保障服务器数据始终以明文存储,正常在线协同办公,确保服务器系统稳定运行。 2、确保终端安全 https://www.dongchayan.com/tags/951.html