《Java程序设计》电子ppt课件模板.pptx

上传人:小飞机 文档编号:3876212 上传时间:2023-03-26 格式:PPTX 页数:125 大小:1.55MB
返回 下载 相关 举报
《Java程序设计》电子ppt课件模板.pptx_第1页
第1页 / 共125页
《Java程序设计》电子ppt课件模板.pptx_第2页
第2页 / 共125页
《Java程序设计》电子ppt课件模板.pptx_第3页
第3页 / 共125页
《Java程序设计》电子ppt课件模板.pptx_第4页
第4页 / 共125页
《Java程序设计》电子ppt课件模板.pptx_第5页
第5页 / 共125页
点击查看更多>>
资源描述

《《Java程序设计》电子ppt课件模板.pptx》由会员分享,可在线阅读,更多相关《《Java程序设计》电子ppt课件模板.pptx(125页珍藏版)》请在三一办公上搜索。

1、Java程序设计电子课件,2019-5-11,1,谢谢观赏,第1篇 核心基础篇,第 3 章 Java面向对象特性,2019-5-11,2,谢谢观赏,本章内容,3.1 类与对象3.2 隐藏和封装3.3 类的继承与多态3.4 数组,2019-5-11,3,谢谢观赏,学习目标,掌握对象与类的基本概念了解对象的生命周期熟练掌握类的定义及实例化理解隐藏与封装熟练掌握类的继承与多态掌握数组的应用,2019-5-11,4,谢谢观赏,本章概要,Java中类和对象的定义;Java对OOP三个主要特性封装、继承和多态的支持机制;Java中的对象数组这种数据结构。,2019-5-11,5,谢谢观赏,3.1 类与对象

2、,类与对象的定义成员变量与局部变量成员方法对象的创建对象的使用对象的消除方法重载this构造方法,2019-5-11,6,谢谢观赏,3.1.1 类和对象的定义,Java程序是由一个或若干个类组成,类是Java程序的基本组成单位,包括:成员变量:描述对象的属性成员方法:描述对象的行为,2019-5-11,7,谢谢观赏,类定义的结构,2019-5-11,8,谢谢观赏,1.类的声明格式,public abstract|final class extends superClassName implements interfaceNameList,类的访问权限及其属性,类定义关键字,类名,继承某个父类的

3、关键字,实现接口的关键字,2019-5-11,9,谢谢观赏,2.类体,构造和初始化新对象的构造方法;表示类及其对象状态的变量;实现类及其对象的方法;进行对象清除的finalize()方法。,2019-5-11,10,谢谢观赏,3.1.2 成员变量与局部变量,成员变量(类):在类体中声明的变量,且不属于任何一个方法时。局部变量:在方法体中声明的变量以及方法的参数则统称为方法的局部变量。,2019-5-11,11,谢谢观赏,【例3-1】成员变量示例,public class Apple public String color;/公共变量color public static int num;/静态

4、变量num public final boolean MATURE=true;/常量MATURE并赋值 public static void main(String args)System.out.println(苹果数量:+Apple.num);Apple apple=new Apple();System.out.println(苹果颜色:+apple.color);System.out.println(苹果是否成熟:+apple.MATURE);,num是类变量(即静态变量),可通过类名直接访问,2019-5-11,12,谢谢观赏,2.局部变量,final;,指定局部变量为常量,局部变量的

5、参数类型,局部变量的名称,2019-5-11,13,谢谢观赏,【例3-2】局部变量的使用,public class Apple String color=Red;float price;public String getColor()return color;public float count()int num;if(num0)return 0;else return price*num;,成员变量,错误语句,因为局部变量num还没有被赋值就使用,2019-5-11,14,谢谢观赏,public static void main(String args)Apple apple=new App

6、le();System.out.println(苹果总价钱:+apple.count();,2019-5-11,15,谢谢观赏,概念:指该变量在程序代码中的作用区域,在该区域外不能直接访问变量。生命周期:指从声明一个变量并分配内存空间、使用变量开始,然后释放该变量并清除所占用内存空间的一个过程。,3.变量的有效范围,2019-5-11,16,谢谢观赏,变量的种类:成员变量类体中声明的成员变量在整个类中有效。局部变量在方法内或方法内的复合代码块(方法内部,“”与“”之间的代码)声明的变量。,2019-5-11,17,谢谢观赏,【例3-3】变量的有效范围,public class Olympics

7、1 private int medal_All=800;public void China()int medal_CN=100;if(medal_CN1000)int gold=50;medal_CN+=30;medal_All-=130;,成员变量,代码块外、方法体内的局部变量,代码块的局部变量,允许访问本方法的局部变量,允许访问本类的成员变量,2019-5-11,18,谢谢观赏,3.1.3 成员方法,返回值类型,方法名称,/方法开始标记,/方法结束标记,方法主体,(参数1,参数2,参数n),2019-5-11,19,谢谢观赏,注意:,方法体中定义的局部变量的作用域只在方法内部;如果局部变量

8、的名字和类的成员变量名字相同,则类的成员变量被屏蔽;如果要在方法中使类的成员变量有效,则可以使用this关键字。,2019-5-11,20,谢谢观赏,public class Olympics2 private int gold=0;private int silver=0;private int copper=0;public void changeModel(int a,int b,int c)gold=a;/给类的成员变量赋值 int silver=b;/使同名类成员变量silver隐藏 int copper=50;/使同名类成员变量copper隐藏 System.out.println

9、(“In changModel:”+“金牌=”+gold+“银牌=”+silver+“铜牌+copper);this.copper=c;/给类成员变量z赋值,2019-5-11,21,谢谢观赏,String getModel()return“金牌=”+gold+“银牌=”+silver+“铜牌=+copper;,2019-5-11,22,谢谢观赏,public static void main(String args)Olympics2 o2=new Olympics2();System.out.println(Before changModel:+o2.getModel();o2.chang

10、eModel(100,100,100);System.out.println(After changeModel:+o2.getModel();,Befor changModel:金牌=0 银牌=0 铜牌=0,gold=100 silver=100 copper=50,In changModel:金牌=100 银牌=100 铜牌=50,After changModel:金牌=100 银牌=0 铜牌=100,如果在方法中对成员变量的值进行了修改,则这种修改将是永久的。,gold=0 silver=0 copper=0,2019-5-11,23,谢谢观赏,3.1.4 对象的创建,一个对象的生命周期

11、包括三个阶段:对象的创建对象的使用对象的消除,2019-5-11,24,谢谢观赏,创建对象,创建对象,声明,实例化,初始化,类,对象名称,new,构造方法(参数),public class Point int x=1;int y=1;public Point(int x,int y)this.x=x;this.y=y;,/实例化Point类,创建对象ptPoint pt=new Point(2,3);,2019-5-11,25,谢谢观赏,Point pt=new Point(2,3);,2019-5-11,26,谢谢观赏,3.1.5 对象的使用,引用对象的变量objectReference.v

12、ariableName;调用对象的方法objectReference.methodName(argumentList),2019-5-11,27,谢谢观赏,【例3-6】对象使用的示例,public class Point int x=1;int y=1;public void setXY(int x,int y)public int getXY()public static void main(String args)Point pt=new Point();pt.x=2;System.out.println(x与y的乘积为:+pt.getXY();pt.setXY(3,2);System.o

13、ut.println(x与y的乘积为:+pt.getXY();,成员变量,成员方法,声明并创建Point类的对象pt,访问对象pt的成员变量x,调用成员方法,2019-5-11,28,谢谢观赏,3.1.6 对象的消除,在C+中,程序员要显式地删除不用的对象,即手动释放对象占用的存储空间。Java提供了垃圾回收(garbage collection)机制:自动判断对象是否还在使用,并自动销毁不再使用的对象,回收对象所占用的资源。,2019-5-11,29,谢谢观赏,Java垃圾回收器执行机制的生命周期,2019-5-11,30,谢谢观赏,3.1.7 方法的重载,在同一个类中定义了多个同名而内容不

14、同的成员方法。classScreen public void print(int i)public void print(float i)public void print(int i,String str),2019-5-11,31,谢谢观赏,方法重载,原则:参数表必须不同:方法参数的个数不同参数类型不同返回类型、修饰符返回类型,2019-5-11,32,谢谢观赏,【例3-7】方法重载的示例,public class Calculate final float PI=3.14159f;public float getArea(float r)return PI*r*r;public floa

15、t getArea(float l,float w)return l*w;public void draw(int num)System.out.println(画+num+个任意形状的图形);public void draw(String shape)System.out.println(画一个+shape);,方法重载,方法重载,2019-5-11,33,谢谢观赏,public static void main(String args)Calculate c=new Calculate();/创建Calculate类的对象float l=20;float w=40;System.out.p

16、rintln(求长为+l+宽为+w+的矩形面积是:+c.getArea(l,w);float r=6;System.out.println(求半径为+r+的圆形面积是:+c.getArea(r);int num=8;c.draw(num);c.draw(“矩形”);,通过传递的参数判断调用哪个方法,通过传递的参数判断调用哪个方法,2019-5-11,34,谢谢观赏,3.1.8 关键词this,用来指向对象自身 用来访问当前对象的数据成员;用来访问当前对象的成员方法;重载构造方法时,用来引用同类的其他构造方法。,2019-5-11,35,谢谢观赏,【例3-8】this关键字的使用,public

17、class Fruit String color=绿色;double price;int num;public double count(double price,int num)this.price=price;this.num=num;return price*num;,成员变量,将参数值赋值给成员变量,即指向对象自身。,2019-5-11,36,谢谢观赏,3.1.9 类的构造方法,功能:初始化类的成员变量特点:名称必须与类名相同不能有返回值必须用new自动调用,2019-5-11,37,谢谢观赏,【例3-9】在类Apple中定义两个构造方法,public class Apple priv

18、ate int num;private double price;public Apple()num=10;price=2.34;public Apple(int num,double price)this.num=num;this.price=price;public static void main(String args)Apple a1=new Apple();Apple a2=new Apple(50,3.15),参数化构造方法,2019-5-11,38,谢谢观赏,2.缺省构造方法,如果在类定义中无构造函数,在编译时可缺省加入构造方法。如:public Apple();一旦在类中有一

19、个自己声明的构造函数,则缺省的构造函数将不被加到源程序中。,2019-5-11,39,谢谢观赏,3.构造方法的重载,功能:使类对象具有不同的初始值,为对象的初始化提供方便。可以使用this调用重载的构造方法。,2019-5-11,40,谢谢观赏,【例3-10】对类Apple的构造方法进行重载 class Apple private String color;private int num;public Apple(String c,int n)color=c;num=n;public Apple(String c)this(c,0);,调用两个参数的构造方法,2019-5-11,41,谢谢观赏

20、,class Apple private String color;private int num;public Apple(String c)this(c,0);public Apple()this(Unknown);,调用一个参数的构造方法,2019-5-11,42,谢谢观赏,class Apple private String color;private int num;public String getColor()return color;public int getNum()return num;,2019-5-11,43,谢谢观赏,public class AppleDemo p

21、ublic static void main(String args)Apple applee=new Apple();System.out.println(“苹果颜色:”+e.getColor();System.out.println(“苹果数量:”+e.getNum();,调用无参数:this(“Unknown”);1个参数:this(c,0);2个参数的构造方法,2019-5-11,44,谢谢观赏,3.2 隐藏与封装,封装访问控制package和import,2019-5-11,45,谢谢观赏,3.2.1 封装,封装,是指将对象的数据与操作数据的方法相结合,通过方法将对象的数据与实现细节

22、保护起来。在类的定义中设置访问对象属性及方法的权限,来限制该类对象及其他类的对象的使用范围。提供一个接口来描述其他对象的使用方法。,2019-5-11,46,谢谢观赏,3.2.2 访问控制,私有的以private修饰符指定;保护的以protected修饰符指定;公开的以public修饰符指定;默认的,也称为default或package不使用任何修饰符指定。,2019-5-11,47,谢谢观赏,表3-1:4种访问权限及其含义,可否直接访问 同一个 同一个 不同包中的 任何 控制等级 类中 包中 子类中 场合,private Yes,default Yes Yes,protected Yes Y

23、es Yes,public Yes Yes Yes Yes,2019-5-11,48,谢谢观赏,1.private修饰符,其成员只能在所在类的内部使用,在其他的类中则不允许直接访问。同一个类的不同对象之间可以访问对方的private成员变量和方法;访问控制是在类的级别上,而不是在对象的级别上。,2019-5-11,49,谢谢观赏,非法:无法通过类Parent的对象访问它的私有成员,2019-5-11,50,谢谢观赏,class Parent private int privateVar;public Parent(int p)privateVar=p;boolean isEqualTo(Par

24、ent anotherParent)if(this.privateVar=anotherParent.privateVar)return true;else return false;,当前对象实例的成员变量与方法的参数传递的另一个对象实例的成员变量是否相等?,2019-5-11,51,谢谢观赏,public class PrivateDemo public static void main(String args)Parent p1=new Parent(20);Parent p2=new Parent(40);System.out.println(p1.isEqualTo(p2);,执行结

25、果:false,2019-5-11,52,谢谢观赏,2.default,如果一个类没有显式地设置成员的访问控制级别,则说明它使用的是默认的访问权限,称为default或package。允许被这个类本身,或者相同包中的其它类访问其default成员。构造方法设置为default权限时,则除这个类本身和同一个包中的类以外,其他类均不能生成该类的对象实例。,2019-5-11,53,谢谢观赏,合法:因为Child与Parent在同一个包中,因此有权通过Parent的对象访问它的默认成员,2019-5-11,54,谢谢观赏,3.protected修饰符,允许类本身、它的子类、以及同一个包中其余的类访问

26、这些成员。,2019-5-11,55,谢谢观赏,package p1;class Parent protected int protectedVar;protected void protectedMethod()System.out.println(“I am protectedMethod);,2019-5-11,56,谢谢观赏,package p1;class Person void accessMethod()Person p=new Person();p.protectedVar=100;p.protectedMethod();,由于Person类与Parent在同一个包中所以,可以

27、创建它的对象,并实现访问。,2019-5-11,57,谢谢观赏,package p2;import p1.*;class Child extends Parent void accessMethod(Parent p,Child c)p.iamprotected=10;c.iamprotected=10;/子类 p.protectedMethod();c.protectedMethod();/子类,X,由于Child与父类Parent不在同一个包中,只能通过子类Child的对象来实现访问,X,2019-5-11,58,谢谢观赏,4.public修饰符,带有public的成员可以被所有的类访问。

28、一个成员只有在被外部对象使用后不会产生不良后果时,才被声明为public。,2019-5-11,59,谢谢观赏,3.2.3 package和import,程序员可以将一组相关的类与接口包裹在一起形成一个包(package)。易于确定包中的类是相关的,根据功能可找到相应的类。防止类命名混乱。控制包中的类、接口、成员变量和方法的可见性。,2019-5-11,60,谢谢观赏,1.package语句,指定程序中的类属于一个哪个包:package pkg1.pkg2.pkg3;包定义语句在每个源程序中只能有一条,即一个类只能属于一个包;包定义语句必须在程序的第一行(之前可有空格及注释);包名用“.”分隔

29、。,2019-5-11,61,谢谢观赏,【例3-13】利用package关键词,将类Circle打包到 com下的graphics包中。package com.graphics;public class Circle final float PI=3.14159f;/定义一个常量PI public static void main(String args)System.out.println(画一个圆形!);,2019-5-11,62,谢谢观赏,com,graphics,package com.graphics;,该Java程序所定义的类保存的路径为:C:mypkgcomgraphics,cl

30、asspath=.;c:mypkg,包分隔符相当于目录分隔符,包存储的路径由包根路径加上包名指明的路径组成;包的根路径由CLASSPATH环境变量指出。,2019-5-11,63,谢谢观赏,编译和生成包,编译之后拷贝javac Circle.javaCircle.class将Circle.class复制graphics子目录下简化的编译命令javac-d C:mypkg Circle.java,1、生成C:mypkgcomgraphics;2、将Circle.class保存到该子目录下。,2019-5-11,64,谢谢观赏,2019-5-11,65,谢谢观赏,2.import语句,功能:imp

31、ort语句告诉编译器要使用的Java类所在的位置;注意,包名也是类名的一部分。,2019-5-11,66,谢谢观赏,将package 引入源程序,格式:import 包名.*;import 包名.类名;import 语句必须在源程序之前,在package 声明之后,Java程序的结构:package./package.;import./import java.lang.*;类声明,2019-5-11,67,谢谢观赏,3.3 类的继承与多态,类的继承方法的重写运行时多态对象类型的强制转换Object类,2019-5-11,68,谢谢观赏,3.3.1 类的继承,2019-5-11,69,谢谢观赏,

32、继承其他类的类叫子类,被继承的类叫做超类(父类)。,继承的特点,层次结构,子类继承 父类的属性和方法,2019-5-11,70,谢谢观赏,例3-15:,2019-5-11,71,谢谢观赏,实现步骤:,步骤:编写父类,步骤:编写子类,使用关键字extends继承父类,2019-5-11,72,谢谢观赏,访问父类的成员方法,访问子类的成员方法,【执行结果】动物需要吃食物鸟会飞翔鸟有:羽毛,2019-5-11,73,谢谢观赏,2.单继承,Java是单继承的,即只能从一个类继承,extends后类名只能有一个。单继承的优点:代码更可靠;可以用接口弥补,用一个类实现多个接口,达到多继承效果。,2019-

33、5-11,74,谢谢观赏,3.super关键字,super可用于访问父类中定义的属性和成员方法;super可用于在子类构造方法中调用父类的构造方法;super的追溯不仅限于直接父类。,2019-5-11,75,谢谢观赏,【例3-16】使用super调用父类构造方法,class Animal boolean live=true;String skin=;public Animal(boolean l,String s)live=l;skin=s;,2019-5-11,76,谢谢观赏,class Bird extends Animal public Bird(boolean l,String s)

34、super(l,s);public class Zoo public static void main(String args)Bird bird=new Bird(true,羽毛);System.out.println(鸟有:+bird.skin);,通过super调用父类的构造方法,2019-5-11,77,谢谢观赏,注意:,子类构造方法体的第一句通常要调用父类的一个构造方法。此时,如果不使用super指定,则将调用默认的父类构造方法(即不带参数的构造方法)。如果在父类中没有无参构造方法,则将产生编译错误。,2019-5-11,78,谢谢观赏,子类中父类成员的隐藏,子类隐藏父类的成员当子类

35、的成员变量与父类的成员变量同名时;当子类的成员方法与父类的成员方法具有相同的名字、参数列表、返回值类型;,2019-5-11,79,谢谢观赏,“隐藏”的含义,通过子类对象调用子类中与父类同名的变量和方法时,有效的(操作)是子类中定义的变量和方法。如果要在子类中访问父类中被隐藏的成员变量或方法,要使用关键词super。,2019-5-11,80,谢谢观赏,3.3.2 方法的重写,在子类中对从父类继承的方法进行改造,称为方法的重写。子类中重写方法必须和父类中被重写方法具有相同的方法名、参数列表和返回值类型子类中重写方法的访问权限不能缩小子类中重写得方法不能抛出新的异常,2019-5-11,81,谢

36、谢观赏,重写,【例3-18】重写的示例,2019-5-11,82,谢谢观赏,public class Zoo public static void main(String args)Dog dog=new Dog();System.out.println(“执行dog.cry()语句时的执行结果是:);dog.cry();Cat cat=new Cat();System.out.println(“执行cat.cry()语句时的 执行结果是:);cat.cry();,访问子类Dog的重写后的成员方法,访问子类Cat的重写后的成员方法,【执行结果】执行dog.cry();语句时地执行结果是:狗发出

37、汪汪声!执行cat.cry();语句时地执行结果是:猫发出喵喵声!,2019-5-11,83,谢谢观赏,3.3.3 运行时多态,多态性(Polymorphism)指在一个程序中相同名字的成员变量和方法可以表示不同的实现。方法重载:静态多态性,或称编译时多态;方法重写(覆盖):动态多态性;变量覆盖:子类可以隐藏与父类中的同名成员变量。,2019-5-11,84,谢谢观赏,1.上溯造型,通过引用子类的实例来调用父类的方法,从而将一种类型(子类)对象的引用转换成另一种类型(父类)对象的引用。,Animal a1=new Parrot();Animal a2=new Dog();Animal a3=n

38、ew Cat();,2019-5-11,85,谢谢观赏,2.运行时多态,通过一个父类变量发出的方法调用:该方法在父类中的实现该方法在某个子类中的实现,只能在运行时,根据该变量指向的对象类型确定,2019-5-11,86,谢谢观赏,子类重写父类Animal的成员方法,子类重写父类Animal的成员方法,子类重写父类Animal的成员方法,2019-5-11,87,谢谢观赏,3.3.4 对象类型的强制转换,下溯造型 将父类类型的引用转换为子类类型,称为下溯造型;下溯造型不一定是安全的,需要进行类型检查。,2019-5-11,88,谢谢观赏,1.instanceof运算符,instanceof,bo

39、olean表达式,2019-5-11,89,谢谢观赏,class Cat extends Animal class Dog extends Animal public class TestInstanceof public void doSomething(Animal a)if(a instanceof Cat)System.out.println(This is a Cat);,使用instanceof方法测试接收的对象是否是Cat类或其子类,2019-5-11,90,谢谢观赏,2.强制类型转换,(SomeClass)aObjectVariable父类弱、子类强,指向父类的引用不能直接按子

40、类引用,必须要强制类型转换后才能作为子类的引用使用。强制转换之前,一般先用instanceof对对象的类型进行测试。,2019-5-11,91,谢谢观赏,class Animal String skin;class Bird extends Animal String skin=羽毛;public String getSkin()return skin;public class Casting public void someMethod(Animal a)System.out.println(a.getSkin();if(a instanceof Bird)Bird b=(Bird)a;Sy

41、stem.out.println(b.getSkin();,2019-5-11,92,谢谢观赏,3.3.5 Object类,Object定义了所有对象都需要的状态和行为。例如:对象之间的比较将对象转换为字符串等待某个条件变量当某条件变量改变时通知相关对象返回对象的类,2019-5-11,93,谢谢观赏,1.equals方法,equals方法用于判别某个指定对象与当前对象(调用equals方法的对象)是否等价;“数据等价”:两个数据的值相等引用类型数据比较的是引用基本数据类型比较值,2019-5-11,94,谢谢观赏,equals与“=”运算符,equals()方法只能比较引用类型;“=”可以比

42、较引用和基本类型;equals()方法对File、String、Date及封装类(Wrapper Class),是比较类型内容,而不考虑引用的是否是同一个实例;,2019-5-11,95,谢谢观赏,public class TestEquals public static void main(String args)String s1=new String(Hello);String s2=new String(Hello);if(s1=s2)System.out.println(s1=s2);else System.out.println(s1!=s2);/输出:s1!=s2,2019-5-

43、11,96,谢谢观赏,if(s1.equals(s2)System.out.println(“s1 is equal to s2);else System.out.println(“s1 is not equal to s2);/输出:s1 is equal to s2 s2=s1;if(s1=s2)System.out.println(“s1=s2);else System.out.println(“s1!=s2);/输出:s1=s2,2019-5-11,97,谢谢观赏,2.toString方法,Object类中实现的toString()方法是返回当前对象的类型和内存地址信息。但在一些子类(

44、如String、Date等)中进行了重写。在用户自定义类中通常都将该方法重写,以返回更适用的信息。,2019-5-11,98,谢谢观赏,3.4 数组,一维数组多维数组数组的复制,2019-5-11,99,谢谢观赏,Java中数组的分类,2019-5-11,100,谢谢观赏,3.4.1 一维数组,定义:type arrayName 或type arrayName类型(type)可以为Java中任意的数据类型,包括简单类型和复合类如:int intArray;Date dateArray;,2019-5-11,101,谢谢观赏,注意:,在声明数组时不能指定其长度:int a5;/不合法原因:声明数

45、组,只是在内存中为该类型数组变量分配引用空间,并没有为数组中每个元素分配数据空间。,2019-5-11,102,谢谢观赏,2.数组的创建,arrayName=dataType arraySize,3.数组的长度,arrayName.length;,2019-5-11,103,谢谢观赏,4.静态初始化,声明并创建了一个长度为 3 的double型的数组,double d=3.14,2.718,10.0;,String s=“Hello,“my,“Java;,声明并创建了一个长度为 3 的 String 型的数组,d0=3.14;d1=2.718;d2=10.0,s0=Hello s1=my s2

46、=Java,静态初始化:在声明一个数组的同时,对该数组中每个元素进行赋值,2019-5-11,104,谢谢观赏,5.动态初始化,在声明(创建)一个数组类型对象时,只为其分配空间,而不同时对其中的各元素赋值。new dataTypearraySize;,2019-5-11,105,谢谢观赏,简单类型:,int a;a=new int3;a0=1;a1=2;a2=3;,声明数组变量a,为其分配定长的引用空间(值为null),null,a,0 x2a567b,a,0 x2a567b,2019-5-11,106,谢谢观赏,引用类型:,null,s,0 x2473c4,s,null,null,null,

47、0 x2473c4,String s;,s=new String3;,S0,S1,S2,地址值,2019-5-11,107,谢谢观赏,引用类型:,0 x2473c4,s,0 x478b52,0 x2473c4,s0=new String(“Hello);s1=new String(“my);s2=new String(“Java);,S0,S1,S2,0 x478b68,0 x478b3c,“my,“Java,0 x4d78c9,2019-5-11,108,谢谢观赏,6.数组元素的引用,数组元素的引用方式为:arrayNameindexindex为数组下标,它可以为整型常数或表达式,下标从0开

48、始。每个数组都有一个属性length指明它的长度。,2019-5-11,109,谢谢观赏,【例3-24】,int anArray;anArray=new int10;for(int i=0;i anArray.length;i+)anArrayi=i;System.out.print(anArrayi+);,声明数组,创建长度为10的数组,数组的长度,为每个数组元素赋值,2019-5-11,110,谢谢观赏,3.4.2 二维数组,定义:type arrayName;或 type arrayName;类型(type)可以为Java中任意的数据类型,包括简单类型和复合类 例如:int intArr

49、ay;Date dateArray;,2019-5-11,111,谢谢观赏,示例:,int a=new int 45;,将创建一个有 4 个数组的数组,每个数组中又有 5 个整数,即 4 行 5 列的整数矩阵。,2019-5-11,112,谢谢观赏,静态初始化,int a=2,3,1,5,3,4;,a00=2 a01=3a10=1 a11=5a20=3 a21=4,2 31 53 4,2019-5-11,113,谢谢观赏,静态初始化,int a=1,2,3,4,0,9,5,6,7;,a00=1 a01=2a10=3 a11=4a12=0 a13=9a20=5 a21=6a22=7,1 23 4

50、 0 95 6 7,2019-5-11,114,谢谢观赏,二维数组的动态初始化,int a;a=new int3;a0=new int2;a1=new int4;a2=new int3;,1 23 4 0 95 6 7,2019-5-11,115,谢谢观赏,正确的说明示例:,int a1=new int 23;int a2=new int 2;int a3=new int 46;,将创建一个有 2 个数组的数组,每个数组中又有 3 个整数,即 2 行 3 列的整数矩阵,2019-5-11,116,谢谢观赏,错误的说明示例,int errarr123;,不允许静态说明数组,数组维数说明顺序应从高

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号