收藏 分享(赏)

Core Java.ppt

上传人:ysd1539 文档编号:4789551 上传时间:2019-01-13 格式:PPT 页数:287 大小:3.14MB
下载 相关 举报
Core Java.ppt_第1页
第1页 / 共287页
Core Java.ppt_第2页
第2页 / 共287页
Core Java.ppt_第3页
第3页 / 共287页
Core Java.ppt_第4页
第4页 / 共287页
Core Java.ppt_第5页
第5页 / 共287页
点击查看更多>>
资源描述

1、Core Java,第一章:进入Java世界,程序语言发展历程,机器语言:二进制机器代码,不便理解,不好记忆,与硬件平台相关,不具有可移植性。 汇编语言:用助记符号来描述,与机器代码一一对应,能够理解,但同样不可移植。 高级语言:按自然语言的语法风格书写程序,方便理解,在原代码的层次上可以实现跨平台移植。,我们熟知的常用计算机语言,C C+ Pascal Basic Java ,Java来自Sun,Sun : Standford University Network Sun公司官方网站http:/,Java创始人,James Gosling green的项目组 具有深厚的c+背景。任务是为小型

2、消费型电子产品开发一种通用的编程语言。如机顶盒。 Oak,Java简史,Java 应用概述,J2ME (Java 2 Micro Edition) 微型版 J2SE (Java 2 Standard Edition) 标准版 J2EE (Java 2 Enterprise Edition) 企业版,Java 应用概述,Java ME (Java Micro Edition) 微型版 Java SE (Java Standard Edition) 标准版 Java EE (Java Enterprise Edition) 企业版,编译型和解释型,编译型语言:,编译型和解释型,解释型语言,Java

3、的工作方式,Java的目标是让你写出一个应用程序,并能在任何设备上运行,Java的工作方式,编译器 编译源代码,同时检查错误 字节码文件 由编译器产生,任何支持Java的设备都能够把它转译成可执行的内容,编译后的字节码与平台无关 Java虚拟机 你不会真的买一台Java的机器,但是你都会有一个虚拟机,这个虚拟机由软件实现,它可以读取与执行字节码文件。,你要做的事,编写源代码、编译、执行,JDK、JRE、JVM,JDK Java Development Kit(java 开发工具包)工具箱1.2-1.4版本也称为SDKSoftware Development KitJRE Java Runtim

4、e Environment (java 运行环境)JVM Java Virtual Machine (java 虚拟机),JDK、JRE、JVM,JDK:(Java Development kit)包含Java运行的基本类库和开发命令,安装JDK可以进行完整的Java开发。 JRE:(Java Runtime Environment)包含Java运行的基本类库和一些运行命令,安装JRE可以运行编译好的Java程序。 JVM:(Java Virtual Machine) Java语言内部运行的核心。,JDK,JRE,JVM,下载并安装JDK,从以下网站可下载JDKhttp:/根据开发机器的不同,

5、请下载相应平台下的JDKInstall JDKWindows: run the executableUnix: run the shell,配置Java环境变量,JAVA_HOMECLASSPATHPATH,配置Java环境变量,Windows 2000/NT/XP开始控制面板系统高级环境变量JAVA_HOME=PATH=%JAVA_HOM%binCLASSPATH=.;Unixcsh: add these lines to $HOME/.cshrcsetenv JAVA_HOME /usr/java.setenv PATH $JAVA_HOME/bin:.setenv CLASSPATH .

6、bsh/ksh: add these lines to $HOME/.profileJAVA_HOME=/usr/javaPATH=$JAVA_HOME/bin:$PATHCLASSPATH=.export JAVA_HOME PATH CLASSPATH,Java的程序结构,类存在于源文件中 方法存在于类中 语句存在于方法中,源文件和类,源文件()带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个类,类的内容必须包括在花括号里面。,public class Dog类,类和方法,类中带有一个或多个方法在Dog这个类中,bark方法带有如何“汪汪”的指令。方法必须在类的内部定义,pub

7、lic class Dogvoid bark() 方法,方法和语句,在方法的花括号中编写方法应该执行的指令。方法代码由一组语句组成。,public class Dogvoid bark()statement1;statement2; 语句,Main方法,当JVM启动时,它会寻找你在命令行所指定的类,然后它会锁定像下面这样的一个特定方法: public static void main(Stringargs) /程序代码 然后JVM就会执行这个方法中的所有代码,剖析类,是的,你不需要记住这些,练习 :Information.java,写一个Java程序打印出下列信息: 姓名 性别年龄 毕业学校

8、户籍,第二章:Java基本语法,你在main()方法里能做什么?,做某件事 声明、设定、调用方法 在适当的条件下做某件事 If/else switch 反复做某件事 for while,认识变量,变量有两种: 基本类型 引用类型,Java注重类型,声明变量的规则 变量必须有一个类型 变量必须有一个名字 int count;,变量类型的不同,变量=杯子,Java的基本数据类型,byte 8-bit 整形值 short 16-bit 整形值 int 32-bit 整形值 long 64-bit 整形值 float 32-bit 浮点数值 double 64-bit 浮点数值 char 16-bit

9、 unicode编码的字符 boolean 布尔值( true 或 false),整形数据(byte、short、 int、long),三种形式给一个整形变量直接赋值: 十进制、八进制和十六进制 直接给出的值默认是int类型。 长整形值应该在数字后面跟上 l 或 L标示。,整形数据在计算机内的存储方式,short a=57;,0000 0000,0011 1001,1111 1111,1100 0111,1,正整数,存储该数字的二进制原码。,short a=-57;,2,负整数,存储该数字的二进制补码。,int a=57;,0000 0000,0000 0000,0000 0000,0011

10、1001,int a=-57;,1111 1111,1111 1111,1111 1111,1100 0111,高字节位,低字节位,浮点数据类型float 和 double,直接在程序中书写的浮点数默认为 dobule类型。 float 类型的数据占32位长度(4 Bytes) double类型的数据占64位长度(8 Bytes) 直接表示一个float 类型的值必须在数字后跟 f 或F 直接表示一个double 类型的值可以在数字后跟d 或D 可以用科学计数法表示,如:123.456e3或123.456E3,public void testFloatType() float fa = 123

11、.4f;float fb = 12.5E300F;float fc = (float)12.5E300;double da = 123D;double db = 123.456D;double dc = 123.45e301;,字符类型char,1,其实就是一个无符号的16位整形,其范围为065535,用来存储该字符的 Unicode编码值,因为Unicode 编码中包含汉字的编码,所以一个char类型的变量也可以存储一个汉字字符。2,在代码中直接给出的一个字符值必须用单引号括起来。char zhChar = 中; char enChar = a; char ucChar = u0060;3,

12、对某些不方便直接书写或直接书写有歧义的字符,java语言规定用转义字符给出。4,可以把char类型数据当作整数数据来操作。,转义字符,转义字符 描述 ddd 1到3位8进制数所表示的字符(ddd) uxxxx 1到4位16进制数所表示的字符(xxxx) 单引号字符 双引号字符 反斜杠字符 r 回车 n 换行 f 走纸换页 t 横向跳格 b 退格,Java语言中转义字符都以给出 常用转义字符列表:,字符串类型-String,String1,是JDK中定义的一个类,不是基本数据类型2,一个String对象可以用来存储多个字符,在程序中直 接给出一个String值要用双引号括起来 String my

13、Name = “Ice Xu”;3,可以使用 + 运算符把多个String数据连接起来,并且还可连接其他类型的数据例如:int count=7;System.out.println(“Counted “ + count + “ chars.“ );,布尔类型-boolean,一个boolean类型的变量用来表示一个或真或假的关系 一个 boolean 类型变量的值必须是true 或 false二者之一 boolean isCorrect = true;,基本数据类型的取值范围,变量赋值,public class Assign public static void main(String arg

14、s) int x, y; / 声明int类型变量x和y float z = 3.414f; / 声明float类型变量并赋值double w = 3.1415; /声明double类型变量并赋值boolean truth = true; /声明boolean类型变量并赋值char c; /声明char类型变量cString str; /声明String类型的引用String str1 = “bye”; /声明String类型的引用并且实例化c = A; / 给c变量赋值 str = “Hi out there!”; / 给str实例化 x = 6; y = 1000; ,变量赋值,要确保变量能

15、存下所保存的值 你无法用小杯子装大值 不可以吗?,类型转换,自动类型转换(隐含转换) 强制类型转换(显式转换),基本数据类型转换序列,char,byte,short,int,double,float,long,说明: 1,在本图中,顺着箭头方向的类型转换可以自动进行, 逆箭头方向的转换或无箭头类型之间的转换必须强制转换。2,能将A类型变量自动转换成B类型变量的前提条件是这种 转换不会造成数据和精度的丢失,即A类型的取值范围是 B类型的取值范围的子集。,类型转换的例子,package sample; public class CastingTest public void implictCast

16、ing() byte a = 60;int ia = a;char b = a;int c = b;long d = c;long e = 1000000000L;float f = e;double g = f;String s = “hello“;public void explicitCasting() long l = 1000000L;int i = l; /(int)l;double d = 12345.678;float f = d; /(float)d;Object o = new String(“Hello“);String str = o; /(String)o; ,练 习

17、,1,写一个程序,要求定义出boolean,int,char,double,float,String类型的变量并赋初值,然后将这些值输出出来。 3,下列哪些赋值语句是错误的:(1) byte b= 0x175; (2) int i=0x27f;(3) char c=123; (4) int a=真;(5) float f=12.345E2; (6) boolean f=0; 4,判断下列语句中的a和b的值是否相等:(1) int a=0; int b=0;(2) int a=0; char b=u0000;(3) int a=123; char b=u007B;(4) int a=0x123;

18、 char b=123;(5) int a=3+5; char b=8;(6) int a=3+5; char b=8; (7) char a=u0000; char b=0;,常用运算符列表,算术运算符,Java对“+”运算符进行了扩展,使它能够进行字符串的连接, 如“abc”+“de”,得到串“abcde” +i , -i 在使用i前,先使i的值改变 i+ , i- 在使用i后,再改变i的值,关系运算符,Java中,任何数据类型的数据(包括基本类型和引用类型)都可以通过=或!=来比较是否相等(这与C、C+不同)。 关系运算的结果返回true或false,而不是C、C+中的1或0。,布尔逻辑

19、运算符,逻辑运算符AND( i & j i | j !i,布尔逻辑运算符,说明: 对浮点数字的比较是非常严格的。短路运算: 1、a & b & c 2、a | b | c 3 、x=y=1 a=5, b=3,c=2,d=1(x=ab) &(y=cd) x ,y =?,位运算符,位运算符(, &, | , ),位运算符( , , ), :将一个数的各二进制位全部右移若干位,移到右端的低位被舍弃,最高位则移入原来高位的值 例如 : a = 00110111,则 a2 = 00001101b = 11010011,则 b2 = 11110100 右移一位相当于除2取商例如: 128 1 return

20、s 128/ 21 = 64256 4 returns 256/ 24 = 16-256 4 returns -256/ 24 = -16 :一个数的各二进制位无符号右移若干位,与运算符相同,移出的低位被舍弃,但不同的是最高位都补0。如 a = 00110111, 则 a2 = 00001101b = 11010011, 则 b2 = 00110100,位运算符, :用来将一个数的各二进位全部左移若干位。高位左移后溢出舍弃,低位补0。例如:a = 00001111,则a2 = 00111100。在不产生溢出的情况下,左移一位相当于乘2128 1 returns 128 * 21 = 25616

21、 2 returns 16 * 22 = 64,移位运算示例,121= 1233= -122= -1266= 1282 = 1292= int a1 = 12 1; int a2 = -12 2; int a1 = 12 1; int a2 = -12 2; int a3 = 128 2; int a4 = 129 2;,移位运算示例,121 12/2(1) 6 1233 12/2(33%32) 12/2(1) 6 -122 -12/2(2) -3 -1266 -12/2(66%32) -12/2(2) -3 1282 128/2(2) 32 1292 129/2(2) 32 int a1 =

22、 12 1;/ 6 int a2 = -12 2;/1073741821 int a1 = 12 1; /24 int a2 = -12 2;/-48; int a3 = 128 2;/512 int a4 = 129 2;/516,流程控制语句,分支语句:if-else, switch-case 循环语句:for, while, do-while 循环跳转语句: break, continue,选择结构if else,if( boolean expression)code block 1 elsecode block 2 ,if( boolean expression)code block

23、,if( boolean expression 1)code block 1 else if (boolean expression 2)code block 2 elsecode block 3 ,if else 的语法结构,1,基本结构,2,省略else分支,3,多层嵌套,选择结构switch case,switch case 实现多分支选择结构的语句:switch(expression) case 整数值1 : 语句; break; case 整数值2 : 语句; break; case 整数值3 : 语句; break; case 整数值4 : 语句; break; case 整数值5

24、 : 语句; break; / default:语句; ,switch case 说明,表达式expression可以是以下四种基本数据类型和枚举类型 (byte,short,int,char) case子句中的值必须是常量,而且所有case子句中的值应是不同的 case通常与break语句联用,以保证多路分支的正确实现。 多个case可以公用一组执行语句。,switch case 应用,例题:根据考试成绩的等级打印出百分制分数段。 public class GradeLevelpublic static void main( String args )System.out.println(“

25、n* first situation *“);char grade=C; /normal useswitch( grade )case A : System.out.println(grade+“ is 85100“);break;case B : System.out.println(grade+“ is 7084“);break;case C : System.out.println(grade+“ is 6069“);break;case D : System.out.println(grade+“ is 60“);break;default : System.out.println(“

26、input error“); ,for循环,格式 for(初始表达式; 布尔表达式; 步进) 循环体语句块 说明:无论初始表达式,布尔表达式,还是步进,都可以置空。初始表达式在整个循环过程中只执行一次。for(int i = 0, j = 1; i 10 ,while 循环,格式:while(布尔表达式) 循环体语句块 例子:,public class WhileTest public static void main(String args) double r = 0;while(r 0.99d) r = Math.random();System.out.println(r); ,do wh

27、ile 循环,格式: do 循环语句 while(布尔表达式); 例子:,break,跳出它所在的循环语句或switch 语句,并从紧跟该循环语句或switch 语句后的第一条语句处执行,int n=13; boolean flag=true; for(int i=2;i=n/2;i+)if(n%i=0)flag=false;break; System.out.println(n+(flag?” is”:”is not”)+” a prime number”);,continue,用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环,注 释,三种类型的注

28、释/单行注释/*这是 一段多行注释, 它跨越了多个行 */* 这是一个文档注释,可以使用JDK的javadoc工具从原文件中抽取这种注释形成程序的帮助文档。*/ 使用javadoc命令建立HTML格式的程序文档javadoc options packagenames sourcefiles files,Java的标示符,1,什么是标示符?在java语言中用来给一个类、变量或方法命名的符号 2,标示符的命名规则:以字母, “_” 或 “$”符号开头可以包含字母、 “_” 、“$”和数字符号大小写敏感不能与保留关键字冲突没有长度限制例如:identifier _sys_ var1 $char us

29、erName user_ name,Java的标示符(续),3,命名约定:类名, 接口名 :每个单词的首字母应该大写。class MyFirstClass interface Weapon字段、方法以及对象:第一个单词首字母应小写,其他单词首字母大写。boolean isWomanvoid setName(String name)常量:全部用大写字母表示。public final int GREEN public final int HEAD_ COUNTJava包(Package):它们全都字母小写。package java.awt.event,Java中的关键字,关键字列表: abstra

30、ct boolean break byte case catch char class continue default do double else extends enum false final finally float for if implements import instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true tr

31、y void volatile while Java 中 true false不是关键字,而是boolean类型的字面量保留字:const,goto 所有的关键字都是小写,friendly,sizeof不是java的关键字,练 习,1,编写程序,判断给定的某个年份是否是闰年。闰年的判断规则如下:(1)若某个年份能被4整除但不能被100整除,则是闰年。(2)若某个年份能被400整除,则也是闰年。 2,给定一个百分制的分数,输出相应的等级。90分以上 A级8089 B级7079 C级6069 D级60分以下 E级 3,编写程序求 1+3+5+7+99 的和值。,练 习,4、利用for循环打印 9*

32、9 表?1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9

33、*9=81,5、从命令行接受一个参数年份,计算此年份是否为闰年? 6、输出所有的水仙花数,把谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身,例如: 153 = 1*1*1 + 3*3*3 + 5*5*5 7、求 a+aa+aaa+.+aaaaaaaaa=?其中a为1至9之中的一个数,项数也可以指定? 8、求 2/1+3/2+5/3+8/5+13/8.前20项之和?,9、利用程序输出如下图形:* * * * * * * * * * * * * * * * * * *,第三章:拜访对象村,有人告诉我那里遍地都是对象,对象,Anything is Object 对象是一种客观存在 对象与对

34、象并不是孤立的存在的,都是有机的结合的 对象有属性,代表这个对象有什么 对象有方法,代表这个对象能干什么,面向对象编程,拿解决现实世界中问题的方法来解决计算机问题 一个系统是由若干功能简单的对象拼装而成,各司其职,各尽所能,专才能做到精 对象与对象之间有弱耦合的关系,提高代码可重用性,类,类是我们人脑中的一种主观认识 类不是对象,却是用来创建它们的模型,类是对象的蓝图,创建你的第一个对象,控制Dog对象,d是一个引用类型的变量,你无法将对象装进这个变量中,对象的引用,事实上没有对象变量这样的东西存在 只有引用(reference)到对象的变量(我们一般把这个变量直接叫引用) 引用并不是对象的容

35、器,而是类似指向对象的指针,对象的引用,还是会有东西放进杯子里,只是引用所放进去的是遥控器,对象的声明、创建、赋值有3个步骤,基本数据类型和引用数据类型,基本数据类型的变量代表数值7的字节被放进变量中(00000111),引用类型的变量代表取得Dog对象的引用以字节形式 放进变量中 对象本身并没有放进变量中!,在垃圾收集堆上的生活,在垃圾收集堆上的生活,Book d = c;,C与d引用到同一对象相同值的两份拷贝, 一台电视两个遥控器,在垃圾收集堆上的生活,c = b;,把变量b的值赋给c,变量b的字节组拷贝了一份给c B和c两者都引用相同的对象,堆上的生与死,Book b = new Boo

36、k(); Book c = new Book();,堆上的生与死,对象1被抛弃并可作为垃圾收集的对象,b = c;,堆上的生与死,c = null;,将null赋值给c,它代表它不再引用任何对象。,第四章:对象的行为,状态影响行为,行为影响状态,对象的状态和行为,实例变量(状态) 方法(行为),你可以传值给方法,你可能会告诉Dog对象叫几声:void bark(int num)while(num0)System.out.println(“WaWa”);num-;,你可以从方法中取返回值,void 代表方法并没有返回任何 东西 一个方法可以回传给调用方指定的类型值,如:int giveSecre

37、t()return 42; 说好了要返回,就一定要返回,值返回的类型必须相符 Java并不要求你一定处理返回值,你可以向方法中传入一个以上的参数,方法可以有多个参数 如果方法有参数,你一定要以正确的数量、类型、和顺序传递参数 你以可以将变量当作参数传入,只要类型相符就可以,值传递或引用传递,在java里,调用传递参数时都是值传递,或者叫拷贝传递,不管理参数的类型是基本数据类型还是引用在型,声明与初始化实例变量,实例变量是在类定义的 实例变量永远都会有默认值,即使你没有明确地赋值给它,实例变量与局部变量之间的差别,实例变量是声明有类内而不是方法内 局部变量是声明在方法内的 局部变量在使用前必需初

38、始化 局部变量没有默认值!如果在变量使用被初始化前就使用,编译会报错 方法的参数基本上与局部变量相同,但你不需要直接初始化它,编译器会确保方法调用时会有与声明相符的参数传进来,且参数会自动被赋值,局部变量和实例变量的寿命,局部变量只存活在声明该变量的方法中 实例变量的寿命与对象相同,如果对象还活着,则实例变量也会是活的。 那引用变量呢? 只要有活着的引用,对象也就会活着 当最后一个引用消失时,对象就会变成可回收的,方法的重载(overload),方法名相同 参数列表不同 返回类型可以不同,也可以相同重载的方法只是刚好有相同名字的不同方法,第五章:数组,什么是数组,数组也是对象 数组中保存着多个

39、相同类型的元素 数组中的每一个元素都是变量,创建一个int型的数组对象,声明一个int数组变量,数组变量是数组对象的遥控器int nums; 创建大小为7的数组,并将它赋值给变量numsnums = new int7; 赋于int数组每一个元素一个int值nums0 = 6;nums1 = 34;nums2 = 23;nums3 = 4;nums4 = 15;nums5 = 0;nums6 = 57;,这个数字我们称为数组的下标,数组的下标从0开始,创建数组对象的另外几种方式,Int nums = 6,34,23,4,15,0, 57; Int nums = new int 6,34,23,4

40、,15,0, 57; 可以换换位置,如: Int nums;,数组犹如杯架,元素本身是基本类型的, 但数组却是个对象,创建Dog数组,声明一个Dog数组变量pets 创建大小为7的Dog数组对象,并赋给变量pets 创建新Dog对象并将它赋值给数组元素Dog pets;pets = new Dog7;pets0 = new Dog();pets1 = new Dog();,创建Dog数组,Dog pets; pets = new Dog7;,创建Dog数组,pets0 = new Dog(); pets1 = new Dog();,Java注重类型,一旦数组被声明出来,你就只能装入所声明类型的

41、元素 你不能将Cat放进Dog数组中,数组元素的默认值,byte short int long 为0 float double 为0.0 char 为 0 boolean 为 false 引用类型为null,数组的一个属性-length,所有java数组都有一个length属性,表示数组的长度 长度的意思是指这个数组最多能保存的元素个数 length属性只能被读取,不能被修改,多维数组,1. 定义方式:type 维数 arrayName;例如:int intArray;int a2; 2. 分配内存空间,有两种方法: 直接为每一维分配空间: int a = new int23; 分别为每一维分

42、配空间 int a = new int2 ;a0 = new int3;a1 = new int3;可以为每行设置为空间大小不同的数组。a0 = new int3;a1 = new int5;,多维数组,数组的数组 初始化,有两种方式: 先定义数组,分配空间,然后直接对每个元素进行赋值 在定义数组的同时进行初始化。如:int a = 2,3, 1,5, 3,4;,数组的拷贝,System.arraycopy(); arraycopy(Object src, int srcPos, Object dest, int destPos, int length) src - 源数组。 srcPos -

43、 源数组中的起始位置。 dest - 目标数组。 destPos - 目标数据中的起始位置。 length - 要复制的数组元素的数量。,练 习,1.定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。 2.定义一个int型的一维数组,包含10个元素,分别赋值为110, 然后将数组中的元素都向前移一个位置,即,a0=a1,a1=a2,最后一个元素的值是原来第一个元素的值,然后输出这个数组。 3. 定义一个int型的一维数组,包含40个元素,用来存储每个学员的成绩,循环产生40个0100之间的随机整数,将它们存储到一维数组中

44、,然后统计成绩低于平均分的学员的人数,并输出出来。 4. (选做)承上题,将这40个成绩按照从高到低的顺序输出出来。 5,(选做)编写程序,将一个数组中的元素倒排过来。例如原数组为1,2,3,4,5;则倒排后数组中的值为5,4,3,2,1。,练 习,6,要求定义一个int型数组a,包含100个元素,保存100个随机的4位数。再定义一个int型数组b,包含10个元素。统计a数组中的元素对10求余等于0的个数,保存到b0中;对10求余等于1的个数,保存到b1中,依此类推。 7,定义一个20*5的二维数组,用来存储某班级20位学员的5门课的成绩;这5门课按存储顺序依次为:core C+,coreJa

45、va,Servlet,JSP和EJB。(1)循环给二维数组的每一个元素赋0100之间的随机整数。(2)按照列表的方式输出这些学员的每门课程的成绩。(3)要求编写程序求每个学员的总分,将其保留在另外一个一维数组中。(4)要求编写程序求所有学员的某门课程的平均分。8,完成九宫格程序? 9,求一个3*3矩阵对角线元素之和 10,打印杨辉三角,第六章:构造方法 封装、继承、多态,哪里来的构造方法,Dog d = new Dog();是的,只不过是Dog的构造方法,看起来像是调用Dog()方法,哪里来的构造方法, 我们没写啊,关于构造方法,构造方法必须和类同名 构造方法没有返回值类型,连void也没有

46、构造方法让你有机会介入new的过程,一个对象的创建过程,为对象分配内存空间 为实例变量赋初始值 调用构造方法,使用构造方法来初始化对象的状态,把初始化代码放到构造方法中,并且把构造方法设定成需要参数的 编译器一定会帮你写出没有参数的构造方法吗?不会 如果你已经写了一个有参数的构造方法,并且你需要一个没有参数的构造方法,则你必须自己动手写 如果类有一个以上的构造方法,则参数一定要不一样,我们可以认为这几个构造方法形成重载关系,this,this指当前对象 构造方法可以通过this调用另外一个构造方法,封装(Encapsulation),将你的实例变量标记为私有:private 提供public的

47、getter和setter方法来控制存取动作 封装后的代码更具有安全性、可扩展性和可维护性,继承(Inheritance),我们把一些类的共性再抽取出来,放到一个类中,那么此类就是这一些类的父类,我们就可以说这些子类继承自父类 继承意味着子类继承了父类的成员,成员的意思就是实例变量和方法 单继承和多继承 Java是单继承,设计一个动物仿真程序的继承树,设计一个动物仿真程序的继承树,设计一个动物仿真程序的继承树,在狗群中,吠叫声是个很重要的事情,该声音必须有代表性和独一无二性,我吃素,可脾气不太好,设计一个动物仿真程序的继承树,对呀,Lion、Tiger 和Cat之间有共同的部分,狼和狗之间也可以 共享某些东西,设计一个动物仿真程序的继承树,它们都是猫科动物,它们都是犬齿动物,方法的覆盖,方法名相同,参数列表相同,返回值也相同 访问权限不能更封闭 抛出异常类型不能更宽泛,调用哪个方法,Wolf这个类共有几个方法 Wolf w = new Wolf(); w.makeNoise(); w.roam(); w.eat(); w.sleep();,“是一个” 与 “有一个”,

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

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报