付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
java基础_数组回顾对象使用对象使用参数传递传值调用引用调用static关键字类变量与实例变量的区别类方法与实例方法的区别主要内容包的概念访问控制数组的相关概念一维数组的声明和初始化二维数组的声明和使用4包包是将一些类聚集在一起的一个实体,是Java语言中有效管理类的一个机制。当一个大型程序交由数个不同的程序人员开发时,用到相同的类名是很有可能的,Java程序开发中为了避免这种情况,提供了一个包的概念(package)。同一个包内的类名不允许重复,不同包内可以有相同名称的类。5包语句使用包很简单,通过关键字package声明包语句。package语句作为Java源文件的第一条语句,指明该源文件定义的类所在的包。package语句一般格式为:packagepackageName;包名可以是一个合法的标识符,也可以是若干个标识符加“.”分割而成,如: packagetom; ;如果源文件中省略了package语句,那么源文件定义的类隐含地认为是无名包的一部分,也就是说源文件定义命名的类在同一个包中,但该包没有名字。6创建包packagemypackage;publicclassCalculate{publicdoublevolume(doubleheight, doublewidth, doubledepth){……}……}
声明包7import语句在编写程序时,除了自己编写类外,还经常需要使用Java提供的许多类,这些类可能在不同的包中,使用import语句可以引入包中的类。在一个Java源文件中可以有多个import语句,它们在程序中的位置是有要求的,必须写在package语句和源文件的类定义之间。要引入java.util包中的Date类,使用:importjava.util.Date;如果要引入一个包中的全部类,则可以用星号来代替,如:
importjava.awt.*;8导入包packagemypackage;importmypackage.Calculate;importjava.applet.Applet;importjava.awt.*;publicclassPackageDemo{ publicstaticvoidmain(Stringargs[]){ Calculatecalc=newCalculate(); ……}}
访问控制封装将数据和处理数据的代码连接起来。同时封装提供另一个重要属性:访问控制。通过访问控制,可以阻止对象的滥用。通过访问指示符来限制访问范围。
访问控制当一个类可以被访问时,对类内的成员变量和成员方法而言,其应用范围可以通过施以一定的访问权限来限定。
同一个类中同包不同类不同包private ★ -default ★ ★ *protected ★ ★ #public ★ ★ ★ + 11访问修饰符该类或非该类均可访问public只有该类可以访问private相同数据包中的类可以访问default该类及其子类的成员可以访问,同一个包中的类也可访问protected
访问控制
public:任何其它类、对象只要可以看到这个类的话,那么它就可以存取变量的数据,或使用方法。
protected:同一类,同一包可以使用。不同包的类要使用,必须是该类的子类。
private:不允许任何其他类存取和调用。
friendly(default,前边没有修饰字的情况):在同一程序包中出现的类才可以直接使用它的数据和方法.数组是用来存储一组相同类型数据的数据结构数组变量属于引用数据类型数组中的元素可以是任何数据类型(基本类型和引用类型)数组概述13一维数组的声明方式:数据类型[]数组变量名;或数据类型
数组变量名[];例如:inta[];int[]a1;doubleb[];Mydate[]c;Java语言中声明数组时不能指定其长度(数组中元素的个数),例如:inta[5];//非法一维数组的声明14Java中使用关键字new创建数组对象格式:数组变量名=new数组元素的类型
[数组元素的个数];数组一旦被创建,就不能再改变它的大小示例:数组对象的创建15publicclassTestArray{publicstaticvoidmain(Stringargs[]){int[]x=null;x=newint[10];for(inti=0;i<10;i++){x[i]=2*i+1;System.out.println(x[i]);}}}堆内存栈内存0xde3000int[]x0xde3000对象首地址00......00x[0]x[1]x[9]x[8]......newint[10]产生的对象创建元素为引用数据类型的数组
16classMyDate{privateintday;privateintmonth;privateintyear;publicMyDate(inty,intm,intd){ year=y;month=m;day=d;}}publicclassTestArray2{publicstaticvoidmain(Stringargs[]){MyDate[]m=newMyDate[3];for(inti=0;i<3;i++){m[i]=newMyDate(2008,4+i,20+i);}}}堆内存栈内存0xde5080MyDate[]m0xde5080对象首地址0xde60660xde52120xde8210200842020086222008521动态初始化数组的定义和为数组元素分配空间并赋值的操作分开进行数组的初始化
17classMyDate{privateintday;privateintmonth;privateintyear;publicMyDate(inty,intm,intd){year=y;month=m;day=d;}}publicclassTest{publicstaticvoidmain(Stringargs[]){int[]a=null;
//定义一个数组
a
=
new
int[3];
//创建一个数组a[0]=4;a[1]=5;a[2]=6;
//给数组内的元素赋值MyDate[]dates=null;dates=newMyDate[3];dates[0]=newMyDate(2000,7,1);dates[1]=newMyDate(2005,3,6);dates[2]=newMyDate(2008,4,22);}}静态初始化:在定义数组的同时就为数组元素分配空间并赋值数组的初始化18classMyDate{privateintday;privateintmonth;privateintyear;publicMyDate(inty,intm,intd){year=y;month=m;day=d;}}publicclassTest{publicstaticvoidmain(Stringargs[]){int[]a={4,6,5};int[]b=newint[]{4,5,6};MyDate[]dates={newMyDate(2000,7,1),newMyDate(2005,3,6),newMyDate(2008,4,22)};}}数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化。数组元素的默认初始化
19classMyDate{privateintday;privateintmonth;privateintyear;publicMyDate(inty,intm,intd){year=y;month=m;day=d;}}publicclassTest{publicstaticvoidmain(Stringargs[]){int[]a=newint[3];MyDate[]dates=newMyDate[2];System.out.println(a[2]);System.out.println(dates[1]);}}数组在定义并为之分配空间后,才可以引用数组中的每个元素数组元素的引用方式:arrayName[index]index为数组元素下标(索引),可以是整型常量或整型表达式。如a[3],b[i],c[6*i];数组元素下标从0开始;长度为n的数组,下标取值范围:0~n-1;每个数组都有一个属性length指明它的长度,例如:
arr.length可获取数组arr的长度;数组元素的引用
20publicclassTestArray{publicstaticvoidmain(String[]args){int[]a={2,4,6,7,3,5,1,9,8};for(inti
=
0;i
<
a.length;
i++){System.out.print(a[i]+"");}
}}Java并没有真正的多维数组,二维数组可以看成以数组为元素的数组。如:int[][]a={{1},{4,5,6},{7,8}};二维数组21堆内存栈内存0xde5080int[][]a0xde5080对象首地址0xde60660xde52120xde8210178456
a[0][0]
a[1][0]
a[1][1]
a[1][2]
a[2][0]
a[2][1]动态初始化int[][]a=newint[4][5];int[][]b=newint[3][];b[0]=newint[2];b[1]=newint[3];b[2]=newint[5];静态初始化:int[][]array={{1,2},{2,3},{3,4,5}};int[3][2]array1={{1,2},{2,3},{4,5}};//非法的二维数组的初始化
22二维数组初始化(动态)从最高维开始(而且必须从最高维开始),分别为每一维分配空间,如:int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 烟雾病患者的护理效果评价
- 神经外科患者的深静脉置管护理与维护
- 2026年数控5轴车铣复合一次装夹完成车铣钻攻
- 直肠癌患者的护理新方向
- 2026年国有企业绿色低碳转型与ESG体系建设指南
- 2026年长三角轨道交通一体化运营公司组建方案
- 土地增值税纳税申报实务的操作程序
- 2026年网络安全培训资料
- 流感疫情下的心理健康管理
- 安宁护理:促进环境安宁与和谐
- 2026年安徽水利水电职业技术学院单招职业适应性测试题库带答案详解
- 2026年漯河职业技术学院单招职业技能考试题库带答案详解
- 2025年江苏城乡建设职业学院单招职业技能测试题库(含答案)
- 2026年人教版八年级道德与法治下册全册知识点(分课编排)
- 2026广西河池市姆洛甲文化旅游投资有限公司招聘文旅策划主管1人考试参考试题及答案解析
- 酒业销售绩效考核制度
- 新版部编版一年级下册道德与法治全册教案(完整版)教学设计
- 江苏无锡市2025-2026学年度第一学期期末考试八年级英语试题(原卷+解析)
- 2026年小红书文旅兴趣出游种草指南
- 冀教版八年级生物下册昆虫的生殖和发育同步练习(含答案)
- GB/T 11337-2004平面度误差检测
评论
0/150
提交评论