1、JAVA培训Java2 SE讲解JAVA培训 Java基础1、语法基础2、面向对象3、JDBC 4、异常课程内容课程内容JAVA培训OOP&Java Base面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)3JAVA培训Java学习路线学习路线Java SE应用程序设计:面向对象(类,继承,接口,多态,抽象与封装)异常处理,I/O编程,集合框架,GUI程序设计,多线程编程数据库的学习:可以学习Oracle数据库安装配置、基本管理及开发,使用OEM/SQL Plus,标准SQL,DML,DDL,函数,事务,约束,序列,索引,视图,数据库设计,MyS
2、ql,SQL Server的基本使用。Java Web应用开发:JDBC,JSP,Servlet,JavaBean,HTML,JavaScript,Session/cookie,MVC设计模式,Tomcat,Eclipse+MyEclipse.Java企业级应用开发:Struts,Hibernate,XML,J2EE/EJB,UML,Spring,AJAX,Jquery,Json4JAVA培训5Java 语言的发展历史Java 已经成为当今最为流行的软件开发语言技术之一。JAVA培训Java的平台无关性Java是一种既面向对象又可以跨平台的语言,即:编写一次,随处运行(Write once,R
3、un anywhere);Java不仅适用于单机应用程序和基于网络的程序,也可用于创建消费类设备的附件程序,如移动电话、掌上设备等。6Java源程序代码WindowsLinuxSolarisJVMJava虚拟机Java字节码(可跨平台)编译运行MAC OSJAVA培训Java虚拟机Java虚拟机(Java Virtual Machine)是可运行Java字节码的虚拟计算机系统;使用Java语言编写的程序,实际上是运行在JVM之上,而不是运行在操作系统上;它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信。7用户USER字节码程序JVM(Java 虚拟机)操作系统硬 件JAVA
4、培训Java虚拟机的运行过程8JIT代码生成器.java源代码文件.class字节码文件编译时运行时硬件类加载器字节码校验器解释器JAVA培训Java发展史 95年sun发布jdk1.0 98年jdk1.2 后续jdk1.3、1.4、1.5 目前jdk1.6、1.7 现在SUN已推出 Java 2 Platform Micro Edition(Java 2 ME)Java 2 Platform Standard Edition(Java 2 SE)Java 2 Platform Enterprise Edition(Java 2 EE)JAVA培训JDK目录 src.zip:核心API所有类的
5、源文件 bin:包含编译器,解释器等可执行文件 Demo:包含源代码的程序示例 include:用于本地方法的文件 jre:Java运行环境 lib:Java类库JAVA培训Java开发环境的下载、安装、配置开发环境的下载、安装、配置 下载:http:/ 安装(windows环境下)配置环境变量:path 验证:Java versionJavac 编译源文件Java 执行文件编写第一个Java文件:HelloWorld.javaJAVA培训第一个第一个Java Application应用程序应用程序 打开记事本,新建一个文本文件,将文件名改为Hello.java,在文件中键入如下内容并保存:p
6、ublic class Hello public static void main(String args)System.out.println(Hello world!);JAVA培训Java源程序扩展名为扩展名为.java的源文件的源文件使用记事本使用记事本进行编辑进行编辑JAVA培训使用javac编译器编译源文件接下来需要将源程序进行编译;进入命令提示行,切换到源文件所在的目录,执行javac命令,使用javac编译器编译源文件;javac命令的格式是:javac 完整的源文件名切换到源文件所在的目录切换到源文件所在的目录使用使用javac命令编译源文件命令编译源文件光标闪烁表示语法无误
7、,光标闪烁表示语法无误,顺利通过编译顺利通过编译JAVA培训.class(字节码)文件 顺利通过编译后将生成一个扩展名为.class的字节码文件(类描述文件)。扩展名为扩展名为.java的源文件的源文件通过编译后通过编译后生成的扩展名生成的扩展名为为.class的的字节码文件字节码文件JAVA培训使用java解释器运行字节码文件进入命令提示行,在字节码文件所在的目录下,执行java命令,使用java解释器运行字节码文件;java命令的格式是:java 类名称请注意:这里只需要类名称,而不是带扩展名的文件名。执行执行java命令运行字节码文件命令运行字节码文件程序运行效果程序运行效果JAVA培训
8、分析程序 关键字class用来定义一个类,Hello是类的名称;在Java程序中,所有的语句都必须放在某个类中;整个类及其所有成员都包含在一对花括号中(即和之间),它们标志着类定义块的开始和结束。定义类的一般语法:class 类名JAVA培训分析程序3-2程序必须从main函数开始执行;关键字public是访问修饰符,用来控制类成员的可见范围及作用域;关键字static允许在不创建类的实例的情况下,调用main函数;关键字void用来说明main函数是没有返回值的;args是字符串数组,用来从命令行接收参数;main函数的一般形式如下:public static void main(Strin
9、g args)JAVA培训分析程序 String是字符串类型的数组;在Java中,类名称一般首字母大写;使用System.out.println()将信息输出到控制台上,即打印出来。JAVA培训 常用Java 命令 编译一个编译一个java源文件源文件$javac 运行运行java可运行文件可运行文件$java-options class args.生成生成java注释文档注释文档$javadoc options packagenames sourcefiles files例:javadoc-d D:javados-sourcepath D:java abstractMoreType.java
10、 javadoc-d c:doc-sourcepath c:src-subpackages com.liigo(递归所有com.liigo子包里的java文件)生成一个生成一个jar包$jar ctxuvfm0Mi jar-file manifest-file-C directory files.例:例:jar-cvf aa.jar-C news.(把把news文件夹里的文件整个打包文件夹里的文件整个打包)JAVA培训J2SE基础语法基础语法 标识符 数据类型 数据类型的转换(主讲四类八种)运算符 条件语句、循环语句:if/for/while/dowhile()/break-continue/
11、switchJAVA培训标识符命名规范 Java语言中,为各种变量、方法和类等起的名字称为标识(identifier)。Java标识符的命名规则:应以字母、下下线(_)、美元符($)、数字组成,但不能以数字开头.Java标识符大小写敏感,长度无限制 不能与关键字同名JAVA培训Java的基础类型及常量的基础类型及常量 Java的八种基础类型:整型:byte、short、int(默认)、long字符型:char浮点型:float、double(默认)布尔型:boolean(一般用于程序的流程控制)注:Java采用Unicode编码(全球语言统一编码),每个字符占两个字节,因此一个Char类型的变
12、量可以存放一个汉字(一个汉字占两个字节)JAVA培训Java的基础类型及常量的基础类型及常量 长度 表示范围byte 1字节,8位 -2727-1short 2字节,16位 -215215-1int 4字节,32位 -231231-1long 8字节,64位 -263263-1float 4字节,32位 大约为+/-3.403E38double 8字节 64位 大约+/-1.798E308JAVA培训基本数据类型转换boolean类型不可转换为其他类型。整型,字符型,浮点型的数据在混合运算中相互转换遵循如下原则:容量小的类型自动转换为容量大的,数据类型按容量大小排序如下:byte、short、
13、char-int-long-float-doublebypt、short、char三者之间不互相转换,三者参与运算时先转换为int类型容量大的在转换为容量小的时候要加强制转换符,但可能造成精度降低或溢出浮点型常量默认值为double类型,整型常量默认值为int类型成员变量、局部变量、变量作用域在Java中,变量一旦声明,就应对其进行初始化TestConvert.javaJAVA培训基本数据类型转换 int i=1,j;float f1=0.1;float f2=123;long l1=12345678;long l2=8888888888;double d1=2e20,d2=20;byte b
14、1=1,b2=2,b3=129;j=j+10;i=i/10;i=i*0.1;byte b=b1-b2;float f3=f1+f2;float f4=f1+f2*0.1;double d=d1*i+j;float f=(float)(d1*5+d2);JAVA培训Java数据类型下分图数据类型基本数据类型引用数据类型类:class接口:interface浮点型:float、double整型:byte、short、int、long布尔型:boolean字符型:char数值型数组JAVA培训运算符:operator Java语言支持的运算符:语言支持的运算符:算术运算符:算术运算符:+,-,*,/
15、,%,+,-关系运算符:关系运算符:,=,基本不用基本不用赋值运算符:赋值运算符:=扩展赋值运算符:扩展赋值运算符:+=,-=,*=,/=字符串连接运算符:字符串连接运算符:+注:+(-)在前时先计算后取值在后时先取值后计算int x=2;System.out.println(1+x+2+x);?x=2;System.out.println(1+x+2+x);?JAVA培训逻辑运算符逻辑运算符ab!aa&ba|baba&ba|btruetruefalsetruetruefalsetruetruetruefalsefalsefalsetruetruefalseTruefalsetruetruef
16、alsetruetruefalsetruefalsefalsetruefalsefalsefalsefalsefalse逻辑运算符:逻辑运算符:【!逻辑非逻辑非】【】【&逻辑与逻辑与】【】【|逻辑或逻辑或】【】【逻辑异与逻辑异与】【】【&短路与短路与】【】【|短路或短路或】public static void main(String args)boolean a=true,b=false,c;c=!a;System.out.println(c);c=ab;System.out.println(c);c=a|b;System.out.println(c);c=a&b;System.out.pri
17、ntln(c);c=a|b;System.out.println(c);c=a&b;System.out.println(c);”“逻辑异与:相同就为逻辑异与:相同就为false,不同则为,不同则为true|和和|区别?区别?&和和&区别?区别?JAVA培训位运算符(一)位运算符(一)移位运算符:移位运算符:“右移右移”;“无符号右移无符号右移”例子:例子:-53=-1-53=-11111 1111 1111 1111 1111 1111 1111 10111111 1111 1111 1111 1111 1111 1111 10111111 1111 1111 1111 1111 1111
18、1111 11111111 1111 1111 1111 1111 1111 1111 1111其结果与其结果与 Math.floorMath.floor(double)-5/(2(double)-5/(2*2 2*2)2)完全相同。完全相同。-53=-40-53=053=00000 0000 0000 0000 0000 0000 0000 01010000 0000 0000 0000 0000 0000 0000 01010000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000其结果与其结
19、果与 5/(25/(2*2 2*2)2)完全相同。完全相同。53=4053=536870911-53=536870911 1111 1111 1111 1111 1111 1111 1111 10111111 1111 1111 1111 1111 1111 1111 10110001 1111 1111 1111 1111 1111 1111 11110001 1111 1111 1111 1111 1111 1111 1111无论正数、负数,它们的右移、左移、无符号右移无论正数、负数,它们的右移、左移、无符号右移 32 32 位都是其本身,比如位都是其本身,比如 -532=-5-532=-
20、5-532=-5、-532=-5532=-5。一个有趣的现象是,把一个有趣的现象是,把 1 1 左移左移 31 31 位再右移位再右移 31 31 位,其结果为位,其结果为 -1-1。0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 00011000 0000 0000 0000 0000 0000 0000 00001000 0000 0000 0000 0000 0000 0000 00001111 1111 1111 1111 1111 1111 1111 11111111 1111 111
21、1 1111 1111 1111 1111 1111JAVA培训位运算符(二)位运算符(二)位逻辑运算符位逻辑运算符:&与;与;|或;或;非(也叫做求反);非(也叫做求反);异或异或“&与与”、“|或或”、“非非”是基本逻是基本逻辑运算,由此可以演变出辑运算,由此可以演变出“与非与非”、“或非或非”、“与或非与或非”复合逻辑运算。复合逻辑运算。“异或异或”是一种特殊的逻是一种特殊的逻辑运算,对它求反可以得到辑运算,对它求反可以得到“同或同或”,所以,所以“同或同或”逻辑也叫逻辑也叫“异或非异或非”逻辑。逻辑。例子:例子:5&3=15&3=10000 0000 0000 0000 0000 00
22、00 0000 01010000 0000 0000 0000 0000 0000 0000 01010000 0000 0000 0000 0000 0000 0000 00110000 0000 0000 0000 0000 0000 0000 00110000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0001-5&3=3-5&3=31111 1111 1111 1111 1111 1111 1111 10111111 1111 1111 1111 1111 1111 1111 1011000
23、0 0000 0000 0000 0000 0000 0000 00110000 0000 0000 0000 0000 0000 0000 00110000 0000 0000 0000 0000 0000 0000 00110000 0000 0000 0000 0000 0000 0000 00115|3=75|3=70000 0000 0000 0000 0000 0000 0000 01010000 0000 0000 0000 0000 0000 0000 01010000 0000 0000 0000 0000 0000 0000 00110000 0000 0000 0000
24、0000 0000 0000 00110000 0000 0000 0000 0000 0000 0000 01110000 0000 0000 0000 0000 0000 0000 0111-5|3=-5-5|3=-51111 1111 1111 1111 1111 1111 1111 10111111 1111 1111 1111 1111 1111 1111 10110000 0000 0000 0000 0000 0000 0000 00110000 0000 0000 0000 0000 0000 0000 00111111 1111 1111 1111 1111 1111 111
25、1 10111111 1111 1111 1111 1111 1111 1111 10115=-65=-60000 0000 0000 0000 0000 0000 0000 01010000 0000 0000 0000 0000 0000 0000 01011111 1111 1111 1111 1111 1111 1111 10101111 1111 1111 1111 1111 1111 1111 1010JAVA培训位运算符(三)位运算符(三)位逻辑运算符:位逻辑运算符:&与;与;|或;或;非(也叫做求反);非(也叫做求反);异或异或“&与与”、“|或或”、“非非”是基本逻是基本逻辑
26、运算,由此可以演变出辑运算,由此可以演变出“与非与非”、“或非或非”、“与或非与或非”复合逻辑运算。复合逻辑运算。“异或异或”是一种特殊的逻是一种特殊的逻辑运算,对它求反可以得到辑运算,对它求反可以得到“同或同或”,所以,所以“同或同或”逻辑也叫逻辑也叫“异或非异或非”逻辑。逻辑。例子:例子:-5=4-5=41111 1111 1111 1111 1111 1111 1111 10111111 1111 1111 1111 1111 1111 1111 10110000 0000 0000 0000 0000 0000 0000 01000000 0000 0000 0000 0000 000
27、0 0000 010053=653=60000 0000 0000 0000 0000 0000 0000 01010000 0000 0000 0000 0000 0000 0000 01010000 0000 0000 0000 0000 0000 0000 00110000 0000 0000 0000 0000 0000 0000 00110000 0000 0000 0000 0000 0000 0000 01100000 0000 0000 0000 0000 0000 0000 0110-53=-8-53=-81111 1111 1111 1111 1111 1111 1111
28、10111111 1111 1111 1111 1111 1111 1111 10110000 0000 0000 0000 0000 0000 0000 00110000 0000 0000 0000 0000 0000 0000 00111111 1111 1111 1111 1111 1111 1111 10001111 1111 1111 1111 1111 1111 1111 1000JAVA培训字符串连接符字符串连接符“+”除用于加法运算外,还可以用于字符串的连接除用于加法运算外,还可以用于字符串的连接int i=55+21;String s=“wang”+“hz”;“+”运算符两
29、侧的操作数只要有一个字符串(运算符两侧的操作数只要有一个字符串(String)类型,系)类型,系统就会自动将另一个操作数转换为字符串类型,然后连接:统就会自动将另一个操作数转换为字符串类型,然后连接:int i=12;System.out.println(“wanghz”+i);输出结果:输出结果:wanghz12String s1=10+2+”qing”String s2=“qing”+10+2 s1和和s2的输出结果会是什么?的输出结果会是什么?注:System.out.println(value);中的value无论是何类型,都会先转为字符型,然后打印JAVA培训if条件语句条件语句条件
30、语句格式:条件语句格式:if if else if else if if else if else if else只有一句要执行的语句时只有一句要执行的语句时 可以省略可以省略但是建议不要去但是建议不要去 if(表达式表达式1)语句块语句块1 else if(表达式表达式2)语句块语句块2 else 语句块语句块3 表达式语句块falsetrueTestIf.javaJAVA培训循环控制语句循环控制语句For循环控制语句格式:循环控制语句格式:for(表达式表达式1;boolean类型的表达式类型的表达式2;表达式表达式3)语句块语句块 注:注:continue和和break区别?区别?表达式
31、1表达式2语句块true表达式3falseTestFor.java课堂练习课堂练习编写程序,用以个for循环计算1!+2!+3!+10!的值,并打印出计算结果。OddSum.javaJAVA培训while与do-whileWhile格式:格式:while(表达式表达式)语句块语句块 do-while格式:格式:do 语句块语句块 while(表达式表达式);表达式true语句块false语句块表达式truefalse两者区别?两者区别?WhileTest.javaJAVA培训循环语句举例/输出1100内前5个能被3整除的数public class Test public static void
32、 main(String args)int num=0,i=1;while(i=100)if(i%3=0)System.out.print(i+);num+;if(num=5)break;i+;/输出输出101200内的质数内的质数public class Test public static void main(String args)for(int i=101;i200;i+=2)boolean f=true;for(int j=2;ji;j+)if(i%j=0)f=false;break;if(!f)continue;System.out.print(i+);JAVA培训Switch条件
33、控制条件控制Switch 格式:格式:switch(表达式表达式)case 表达式表达式1:语句块语句块1 break;case 表达式表达式2:语句块语句块2 break;default:(可有可无可有可无)语句块语句块3 break;小心case穿透,推荐使用break语句多个case可以合并到一起default可以省略,但不推荐省略注:表达式必须是int类型的(byte,short,char,int),break语句穿透问题SwitchTest.javaJAVA培训方法Java中的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式:修饰符1 修饰符2.返回值类型 方法名
34、(形式参数列表)Java 语句 Sample:public String getName(String name)return“name=”+name;形式参数:在方法被调用时,用于接收外界输入的数据。实参:调用方法时,实际传给方法的数据。返回值:方法在执行完毕后返还给调用它的环境的数据。返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void Java语言中使用下述形式调用方法:对象名.方法名(实参列表)实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配return语句终止方法的运行,并指定要返回的数据返回值类型:事先约定的返回值的数据类型,如无返回值,必须给
35、出返回值类型void TestFuncation.javaJAVA培训基本语法总结 标识符 数据类型 数据类型的转换(主讲四类八种)运算符 条件语句、循环语句:if/for/while/dowhile()/break-continue/switchJAVA培训面向对象 类与对象类与对象 对象在内存中的解析对象在内存中的解析 方法的重载(方法的重载(overload)关键字:关键字:this、static、以及他们与类之间的、以及他们与类之间的关系关系 package和和import语句语句 继承继承 访问控制符访问控制符 多态多态JAVA培训类与对象类与对象 类:具有相同属性和功能的一类事物(
36、属性和方法的集合)。抽象:对具有相同属性和方法的一类事物的描述过程就叫抽象,抽象的结果就是类。对象:类的一个实例,对象是组成类的元素。JAVA培训类的定义类定义的格式:类定义的格式:修饰符 class 类名 类体代码 类的定义主要有两部分组成:成员变量和方法/用class关键字定义类,例如:class Person /成员变量定义 private int id=1;private int age=20;/定义方法 public int getId()return id;public int getAge()return age;public void setAge(int i)age=i;JA
37、VA培训对象的创建Java语言中除基本数据类型之外的变量类型都称之为引用类型。Java中的对象是通过引用对其操作的。例如:/声明了一个Person类型的变量,但并没/有使它指向一个对象。Person p;/使用new语句创建了一个Person类型的对象,并用p指向它,以后可以通过p完成对它的操作。p=new Person();p=nullstackheapPerson p;p=new Person();pid:1age:20JAVA培训方法的调用 class Person /成员变量定义 private int id;private int age=20;/定义方法 public int ge
38、tId()return id;public int getAge()return age;public void setAge(int i)age=i;public class Test public static void main(String args)Person p=new Person();p.setAge(34);int age=p.getAge();System.out.println(age);使用 对象引用.方法名(参数列表)来调用对象的方法。JAVA培训封装性 类的封装性:即不能让外面的类随意修改一个类的成员变量在定义一个类的成员(包括变量和方法),使用private关键
39、字说明这个成员的访问权限,只能被这个类的其他成员方法调用,而不能被其他的类中的方法所调用;为实现封装性,常将类的成员变量声明为private,再通过public的方法来对这个变量进行访问。对一个变量的操作,一般都有 读取和赋值操作,我们一般定义两个方法来实现这两种操作,即:getXxx()与setXxx();一个类就是一个模块,我们应该让模块仅仅公开必须要让外界知道的内容,而隐藏其他的一切内容。再进行程序设计时,应尽量避免一个模块直接修改或操作另一个模块的数据,模块设计追求强内聚(许多功能尽量在类的内部独立完成,不让外面干预),弱耦合(提供给外部尽量少的方法调用)。JAVA培训构造方法类内部一
40、种特殊的方法,创建对象时所调用的方法。使用 new+构造方法名 创建一个新的对象。构造方法是定义在java类中的一个用来初始化对象的方法。构造方法没有返回值类型,它与其他的方法在此处不同构造方法的方法名与类名完全相同class Person /成员变量定义 int id;int age=20;Person(int i,int n)id=i;age=n;JAVA培训构造方法创建对象时,使用构造方法初始化对象的成员变量。public class Test public static void main(String args)/创建对象 Person tom=new Person(1,25);Pe
41、rson jack=new Person(2,20);tomstackjack125220heapJAVA培训构造方法每个类都至少有一个构造方法,如果我们没有显示的声明,JVM会在加载该类时为其添加一个public的无参的构造方法:类名()例如:class Point int x;int y;.main Point p=new Point();JAVA培训课堂练习定义一个点(point)类用来表示三维空间中的点(有三个坐标)。要求如下:1.可以生成具有特定坐标的点对象 2.提供可以设置三个坐标的方法 3.提供可以计算该”点”到原点距离平方的方法 4.编写程序验证上面三点TestPoint.ja
42、vaJAVA培训方法的重载方法的重载方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。调用时会根据不同的参数表选择对应的方法。调用时会根据不同的参数表选择对应的方法。判断方法重载的依据:判断方法重载的依据:1、在同一个类内、在同一个类内2、方法名相同、方法名相同3、参数的类型不同,或者参数的个数不同,或者参数的排列顺序不同、参数的类型不同,或者参数的个数不同,或者参数的排列顺序不同4、方法的返回值的不同不能作为判断方法重载的依据,仅仅是返回值的不方法的返回值的不同不能作为判断方法重载的依据,仅仅是返回值的不同,就
43、造成了方法的重名,会报错同,就造成了方法的重名,会报错。TestOverLoad.javaJAVA培训构造方法的重载构造方法的重载与普通方法一样,构造方法也可以重载例如:Person类的构造方法class Person int id;int age;public Person()id=1;age=20 public Person(int m)id=m;age=20;public Person(int m,int n)id=m;age=n;课堂练习:课堂练习:利用Person类,编写程序,分别用三种构造方法创建三个Person对象,如下图所示:p1p2p3120220536JAVA培训关键字关键
44、字this在类的方法中使用。在类的方法中使用。This:当前对象的一个引用,指向它自己,在类的内部使用。当前对象的一个引用,指向它自己,在类的内部使用。有时使用有时使用this可以处理方法中成员变量和参数重名的情况。可以处理方法中成员变量和参数重名的情况。TestThis.javathisheapJAVA培训关键字关键字static 在类中,用在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,第一次使用时被初始化,对于该类的所有对象来说,static成员变量该变量只成员变量
45、该变量只有一份,保存在内存的有一份,保存在内存的data segment中。中。用用static声明的方法,表示该方法为静态方法,在调用方法时,不会将对象的声明的方法,表示该方法为静态方法,在调用方法时,不会将对象的引用传递给它,所以在引用传递给它,所以在static方法中,不能直接调用非静态的成员变量或非静方法中,不能直接调用非静态的成员变量或非静态的方法。可以直接通过类名态的方法。可以直接通过类名.静态方法名调用。静态方法名调用。可以通过对象、引用或类名可以通过对象、引用或类名(不需要实例化不需要实例化)访问静态成员。访问静态成员。TestStatic.javaTestFuncation.
46、javaJAVA培训package和import语句为便于管理大型软件系统中数目众多的类,解决类的命为便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,名冲突问题,java引入包引入包(package)机制。机制。package语句作为java源文件的第一条语句,指定该文件源文件的第一条语句,指定该文件中定义的类所在的包。中定义的类所在的包。它的格式为:它的格式为:package pkg1.pkg2.pkg3;Java编译器把包对应于文件系统的目录管理,编译器把包对应于文件系统的目录管理,package语句中,用.来指明包的层次,例如使用语句:package com.test;则该文件
47、中所有的类位于.comtest 目录下TestPackage.javaJAVA培训继承子类通过继承获得基类的所有属性(包括私有的)及方法。在子类通过继承获得基类的所有属性(包括私有的)及方法。在创建子类对象时,可以通过子类对象调用基类的方法和访问除创建子类对象时,可以通过子类对象调用基类的方法和访问除去私有的一切成员变量。去私有的一切成员变量。继承提高了代码的复用性。继承提高了代码的复用性。子类可以扩展基类的方法及属性。子类可以扩展基类的方法及属性。子类对象的创建伴随着父类对象的创建子类对象的创建伴随着父类对象的创建TestExtends.java(内存分析内存分析)ageageAnimalc
48、olorCatJAVA培训访问权限控制访问控制本类同一包中的类其他包中子类其他包中的类publicprotected缺省privateu Java权限修饰符public、private、protected置于类的成员定义前,用来限定其它对象对该类对象成员的访问权限。u 对于class的权限修饰只可以用public和default。public类可以在任何地方被访问。default类只可以被同一个包内的类访问。TestAccess.javaJAVA培训继承中的权限控制class Parent private int n_private=1;int n_default=2;protected in
49、t n_protected=3;public int n_public=4;class Child extends Parent public void f()n_private=10;/error n_default=20;n_protected=30;n_public=40;JAVA培训课堂练习 编写一个Computer 类,提供加(add)、减(reduce)、乘(sheng)、除(div)方法。SubComputer类,继承Computer 类,提供取余(mod)、求平方(square)、立方(cube)方法。TestComputer.javaJAVA培训方法的重写 在子类中可以根据需
50、要对从基类中继承来的方法进行重写。重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型。重写方法的访问权限不能比被重写方法的低。TestOverride.javaJAVA培训super关键字在子类中可以使用super关键字来引用基类的成分,例如:class FatherClass public int value;public void f()value=100;System.out.println(“FatherClass.value=”+value);class ChildClass extends FatherClass public int value;public void