《第01章JAVA基础语法.ppt》由会员分享,可在线阅读,更多相关《第01章JAVA基础语法.ppt(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、http:/JAVA基础语法http:/中国十大品牌IT教育机构uJAVA程序的文件类型程序的文件类型uJDK的正确安装的正确安装u环境配置环境配置(path,classpath)u标识符的规定标识符的规定uJAVA的数据类型的数据类型uJava有几种数据类型有几种数据类型?u数据类型的转换数据类型的转换u有几种转换方式有几种转换方式?(原原包包 原原字字 字字包包 包包字字 字字原)原)u自动转换发生在什么时候自动转换发生在什么时候?语言基础部分语言基础部分http:/中国十大品牌IT教育机构Java的OOP特征u封装封装隐藏成员和实现细节隐藏成员和实现细节u继承继承使用继承提高代码的复用性
2、使用继承提高代码的复用性u多态多态提高代码的可扩展性及可维护性提高代码的可扩展性及可维护性http:/中国十大品牌IT教育机构Java的封装u类与对象的概念类与对象的概念u类的声明类的声明u类的成员类的成员u构造方法构造方法umain()方法方法uthisu方法的重载方法的重载http:/中国十大品牌IT教育机构课堂案例1-1l编写一个类,代表任课老师,要求:1.具有属性:name、age、education(学历学历)、position(职位职位)2.具有行为:自我介绍3.任课老师的最小年龄要求:22岁http:/中国十大品牌IT教育机构l封装封装,就是隐藏实现细节就是隐藏实现细节1.将属性
3、私有化,提供公有方法访问私有属性将属性私有化,提供公有方法访问私有属性2.通过这些公有方法访问私有属性通过这些公有方法访问私有属性 l封装的实现:封装的实现:1、修改属性的可见性来限制对属性的访问、修改属性的可见性来限制对属性的访问2、为每个属性创建一对赋值、为每个属性创建一对赋值(setter)方法和取值方法和取值(getter)方法,用于对这些属性的方法,用于对这些属性的访问访问3、在、在setter和和getter方法中,加入对属性的存取限制方法中,加入对属性的存取限制http:/中国十大品牌IT教育机构课堂案例1-21.要简化对象初始化的代码,可以通过构造方法来解决要简化对象初始化的代
4、码,可以通过构造方法来解决2.默认情况下,教师学历为本科,职位是教师,初始化时,只需提供教员其他信息默认情况下,教师学历为本科,职位是教师,初始化时,只需提供教员其他信息3.有时,只需要提供教员姓名有时,只需要提供教员姓名http:/中国十大品牌IT教育机构u类的继承类的继承u方法的覆盖方法的覆盖usuper关键字关键字u向上转型向上转型u修饰符修饰符(对类、类成员的访问权限控制对类、类成员的访问权限控制)Java的继承http:/中国十大品牌IT教育机构课堂案例l开发CCAT教员类,其中教员分为Java教员以及.NET教员,各自的要求如下:1.Java教员属性:姓名、所属校区属性:姓名、所属
5、校区方法:授课(步骤:打开方法:授课(步骤:打开Eclipse、实施理论课授课)、自我介绍、实施理论课授课)、自我介绍2.NET教员属性:姓名、所属校区属性:姓名、所属校区方法:授课(步骤:打开方法:授课(步骤:打开Visual studio 2005、实施理论课授课)、自我介、实施理论课授课)、自我介绍绍http:/中国十大品牌IT教育机构请问:以下这个解决方案中存在着什么问题?public class CCATDotNetTeacher private String name;/教员姓名教员姓名private String school;/所在校区所在校区public CCATDotNet
6、Teacher(String myName,String mySchool)name=myName;school=mySchool;public void giveLession()System.out.println(启动启动 Visual Studio 2005);System.out.println(知识点讲解知识点讲解);System.out.println(总结提问总结提问);public void introduction()System.out.println(大家好!我大家好!我是是 +school+的的+name+.);public class CCATJavaTeacher
7、 private String name;/教员姓名教员姓名private String school;/所在所在校区校区public CCATJavaTeacher(String myName,String mySchool)name=myName;school=mySchool;public void giveLession()System.out.println(启动启动 Eclipse);System.out.println(知识点讲解知识点讲解);System.out.println(总结提问总结提问);public void introduction()System.out.pri
8、ntln(大家好!我大家好!我是是 +school+的的+name+.);http:/中国十大品牌IT教育机构课堂案例l现在,升级CCAT教员类,增加一种新类型:CCATDBTeacher,该类型的教员专门负责教授数据库,要求如下:1.属性:姓名、所属中心2.方法:授课(启动Sql Server2005、实施理论课授课)、自我介绍http:/中国十大品牌IT教育机构Java的多态u抽象方法抽象方法 抽象类抽象类u接口的定义,实现,主要优点接口的定义,实现,主要优点u接口接口 抽象类抽象类 继承的运用继承的运用http:/中国十大品牌IT教育机构抽象类的注意事项l抽象类不可以直接实例化,只可以用
9、来继承;抽象类不可以直接实例化,只可以用来继承;l抽象类的子类应该提供对其所有抽象方法的具体实现;抽象类的子类应该提供对其所有抽象方法的具体实现;l可以这么认为,抽象方法实际上就是由抽象父类强制要求其子类必须实现的可以这么认为,抽象方法实际上就是由抽象父类强制要求其子类必须实现的方法原型;方法原型;l如果抽象类的子类没有实现其中的所有抽象方法,那么该子类仍然是抽象类,如果抽象类的子类没有实现其中的所有抽象方法,那么该子类仍然是抽象类,只能用于继承,而不能实例化;只能用于继承,而不能实例化;l抽象类中也可以包含有非抽象的方法;抽象类中也可以包含有非抽象的方法;l抽象类中不一定包含抽象方法抽象类中
10、不一定包含抽象方法;l构造方法和静态方法不可以修饰为构造方法和静态方法不可以修饰为abstract。http:/中国十大品牌IT教育机构接口的注意事项l接口中不能定义非抽象方法,也就是说接口中不能包含方法实体;接口中不能定义非抽象方法,也就是说接口中不能包含方法实体;l接口中的所有方法都默认为抽象方法,无需在每个方法前加接口中的所有方法都默认为抽象方法,无需在每个方法前加abstract关键字;关键字;l接口的实现类应该提供对接口中所有抽象方法的具体实现,否则将必须为抽接口的实现类应该提供对接口中所有抽象方法的具体实现,否则将必须为抽象类;象类;l接口中成员属性只能定义为常量接口中成员属性只能
11、定义为常量l与抽象类和它的继承类相似,也可以使用接口的引用指向其子类的对象,从与抽象类和它的继承类相似,也可以使用接口的引用指向其子类的对象,从而达到动态多态的效果而达到动态多态的效果。l接口不可以被实例化接口不可以被实例化http:/中国十大品牌IT教育机构l抽象类、继承、接口综合抽象类、继承、接口综合l设计一个系统:设计一个系统:lXXX门的实现过程:门的实现过程:l流程:流程:l设计一张抽象的门设计一张抽象的门Door,那么对于这张门来说,就应该拥有所有门的共性,那么对于这张门来说,就应该拥有所有门的共性,开门开门openDoor()和关门和关门closeDoor();然后对门进行另外的
12、功能设计;然后对门进行另外的功能设计,防盗防盗-theftproof()、防水、防水-waterproof()、防弹、防弹-bulletproof()、防火、防锈、防火、防锈l要求:利用继承、抽象类、接口的知识设计该门要求:利用继承、抽象类、接口的知识设计该门http:/中国十大品牌IT教育机构课堂案例l编写一个宠物精灵的游戏,要求每一种动物都可以叫,洗澡和玩游戏。l如猫:喵喵,用舌头给自己洗澡,玩球l如狗:汪汪,用爪子给自己洗澡,玩鞋子http:/中国十大品牌IT教育机构l包的使用包的使用lfinal关键字关键字 修饰类,变量,方法修饰类,变量,方法lstatic关键字关键字 成员,方法成员
13、,方法l内部类内部类http:/中国十大品牌IT教育机构静态成员小结l静态成员包括静态成员包括静态数据成员静态数据成员和和静态成员方法静态成员方法;l静态成员属于整个类而不是属于某个对象,它被该类的所有对象共享;静态成员属于整个类而不是属于某个对象,它被该类的所有对象共享;l访问静态成员时一般通过类名访问,也可以通过对象访问;访问静态成员时一般通过类名访问,也可以通过对象访问;l静态成员也受访问权限的约束;静态成员也受访问权限的约束;l静态数据成员在使用之前应尽量初始化;静态数据成员在使用之前应尽量初始化;l静态成员方法不能操作非静态成员;静态成员方法不能操作非静态成员;l静态成员方法没有静态
14、成员方法没有this引用。引用。l静态成员的内存是开辟在系统的静态块中静态成员的内存是开辟在系统的静态块中,所以可以在没创建具体对象的情况所以可以在没创建具体对象的情况下使用静态成员。下使用静态成员。http:/中国十大品牌IT教育机构u异常的体系结构异常的体系结构u处理异常的关键字处理异常的关键字u自定义异常自定义异常u异常处理时原则异常处理时原则(注意事项注意事项)Java的异常http:/中国十大品牌IT教育机构异常的体系结构http:/中国十大品牌IT教育机构异常处理时原则异常处理时原则-不要进行小粒度的异常处理l会使代码变得冗长罗嗦。l也没有将正常流程与异常处理分开。Test1.ja
15、va捕获文件读写异常:tryFileReader fin=new FileReader(Students.txt);BufferedReader in=new BufferedReader(fin);String line=in.readLine();System.out.println(line);in.close();fin.close();catch(FileNotFoundException e)System.out.println(e);catch(IOException e)System.out.println(e);不要写成下面的形式:tryFileReader fin=new
16、FileReader(Students.txt);catch(FileNotFoundException e)System.out.println(e);tryBufferedReader in=new BufferedReader(fin);catch(IOException e)System.out.println(e);tryString line=in.readLine();catch(IOException e)System.out.println(e);System.out.println(line);tryin.close();fin.close();catch(IOExcept
17、ion e)System.out.println(e);http:/中国十大品牌IT教育机构异常处理时原则异常处理时原则-不要压制异常l至少应该将异常信息通知用户。Test1.java捕获文件读写异常:tryFileReader fin=new FileReader(Students.txt);BufferedReader in=new BufferedReader(fin);String line=in.readLine();System.out.println(line);in.close();fin.close();catch(FileNotFoundException e)System
18、.out.println(e);catch(IOException e)System.out.println(e);不要写成下面的形式:tryFileReader fin=new FileReader(Students.txt);BufferedReader in=new BufferedReader(fin);String line=in.readLine();System.out.println(line);in.close();fin.close();catch(FileNotFoundException e)catch(IOException e)System.out.println(e);http:/中国十大品牌IT教育机构异常处理时原则异常处理时原则-异常的限制l当你override(覆盖)一个方法,你只能申明和抛出不比它的父类版本中申明的异常多的异常,换言之,覆盖方法的时候,你只能抛出这个方法在父类中的版本所声明的异常。l如果方法是在子类中定义而不是父类中定义的,那么抛出异常的时候,就没有这个问题。同时这种异常方面的限制对构造函数不起作用。另外,子类的构造函数不能捕获任何由父类构造函数抛出的异常。