1、Java语言及面向对象程序 设计(16章),T108 唐增科,第一章 封装,第一章 封装,访问修饰符 什么是封装 构造方法 方法的重载,private:使用该关键字修饰的属性能够和方法称为私有属性和私有方法,只能在本类中调用。 protected:该修饰符修饰的成员变量以及成员方法只允许在定义的该类以及该类的子类进行访问,其他的任何类都不可以访问。 public:使用该关键字声明的属性和方法称为公有属性和公有方法,可以在任何类中进行访问。,1.1 访问修饰符,1.2什么是封装,所谓封装,就是指隐藏内部的实现,提供外部访问的接口。 Private String name; Public String getName() return this.name; Public String setName(String name) this.nsme=name; 注:this表示自己。 这样,我们就可以通过getName()方法获取name的值,通过setName()方法设置name的值。,1.3 构造方法,构造方法的语法规则: 方法名必须与类型相同 没有返回类型,也不能写void。 实现如下:
2、 Public calss Teacher() public String name=“z张三”; public Teacher() /空的构造方法 public Teacher(String name) /带参的构造方法 this.name=name; ,1.3 构造方法,调用方法如下: Teacher t1=new Teacher(); 此时我们调用的就是无参的构造方法,我们为给name赋值,此时t1.name的值是张三。 Teacher t2=new Teacher(“李四”); 此时我们调用的是带参的构造方法,我们传入的一个String类型的变量,此时t2.name的值为李四。,1.4 方法的重载,什么是方法的重载? 方法重载是指方法名称相同,参数列表不同。 public double add(int x,int y) return x+y; public double add(double x,double y) return x+y; 以上的两个方法实现了重载,当我们在调用方法的时候,系统会通过参数的不同从而决定调用哪一个方法。,第二章 继承与多态,第二章 继承与多态,什么
3、是继承 怎样实现继承 为什么要使用多态 多态的实现步骤,2.1 什么是继承,运动员,球类运动员,田径运动员,篮球运动员,足球运动员,跳高运动员,跳远运动员,从上图我们可以看出,继承的特点是,父类更抽象,子类更具体。父类具有公共的基本特征和行为,而子类除了继承父类的公有特征和行为外,还具有自己特殊的特征和行为。子类和父类具有is-a的关系。在Java中,一个子类有且只有一个父类。在Java中,Object是所有类的父类。,2.2 怎样实现继承,使用extends实现继承,如下 Public class truck extends car() 在父类 只定义通用的属性和方法。 子类继承父类的属性和方法,子类也可以定义自己的属性和方法。 方法重写,子类定义的方法,它的名称、返回类型以及参数列表与父类的某个方法相同,那么我他就实现了重写。如果没有重写,则调用的父类的方法,否则就是调用自己定义的方法。 使用super关键字可以调用父类的属性、方法以及构造方法。 总结:使用继承可以提高代码的复用性。,什么是多态? 就是不同对象对于同一件事情具有不同的实现。 使用多态的好处? 增强代码的可扩展性和可
4、维护性。,2.3 为什幺使用多态,实现多态的步骤如下: 子类重写父类的方法。 把父类类型作为参数类型,该父类及其子类对象对象作为参数传入。 运行时,根据实际创建的对象类型动态决定使用哪个方法。,2.4 实现多态的步骤,第三章 面向接口编程,第三章 面向接口编程,为什么要使用接口 定义和实现接口 面向接口编程,什么是接口? 接口是定义某种功能的一组规范。 为什么要使用接口? 当我们要使用具有某种相同功能的一组类,但又抽象步出他们的共同属性及行为时,就可以使用接口。使用接口,可以实现多态。 使用接口的好处: 在不破坏现有代码的基础上,提高代码的可扩展性。,3.1 为什幺使用接口,定义接口如下: public interface Count public static final double PI=3.14; public double area (double r); 实现接口如下: Public class Circle implements Count() public double area (double r) return Count.PI*r*r; ,3.2 定义和实现接口,
5、定义接口规范如下: 使用interface关键字,接口中的方法不可以实现,接口中定义的属性都是常量,使用关键字final,接口中方法的反访问修饰符都为public。 实现接口规范如下: 使用关键字implements来实现接口,一个类可以实现多个接口,用逗号隔开。只要实现了接口,就必须实现接口中所有的方法。,3.2 定义和实现接口,3.3 面向接口编程,面向接口编程概述: 在编写代码的时候先把系统所有要实现的功能使用接口抽象出来,而不是去针对实现去编写代码,我们只要实现所有的接口,整个系统的功能叶就基本实现。 面向接口编程的实现过程分为以下三步: 1.抽象出接口 2.实现接口 3.使用接口,第四章 异常,第四章 异常,异常以及异常处理 try-catch-finally语句 throw和throws的区别 使用log4j记录日志,什么是异常? 异常就是在程序运行过程中发生的不正常事件,它会中断正在运行的程序。 什么是异常处理? 预先想好可能出现错误,提前做好处理措施,如果发生了异常,程序会按照我们预定的进行处理,异常处理完毕后,程序继续运行。 怎样进行异常处理? 使用try-catch
6、语句。,4.1 异常以及异常处理,Exception类是所有异常类的父类,以下是Java中常见的异常类:,4.1 异常以及异常处理,Try /可能发生异常的代码 catch(异常类 名称) /相对异常类型进行处理 finally /始终执行的代码 注:可以使用多重catch,但是必须把Exception类写在最后。 没有发生异常时,先执行try中的代码,然后执行finally中的代码。发生时,找到对应的异常处理,然后执行finally中的代码。,4.2 try-catch-finally语句,4.3 throw和throws的区别,public class Count public double division throws IllegalArgumentExcep (double x,double y) if(y=0) throw new IllegalArgumentException(“除数不能为0”); else return x/y; ,throw: 抛出异常,由该方法的调用者进行处理,它抛出的是一个异常类的对象。 Throws: 显示抛出异常,它是声明可能出现的异常类名称
7、,如果有多个,可以用逗号隔开。,4.3 throw和throws的区别,Eclipse中使用log4j主要分为4个步骤: 在工程加入log4j所需要的jar文件 创建log4j.properties文件 编写log4j.properties文件,配置日志信息 在程序中使用log4j记录日志文件,4.4 使用log4j记录日志,第五章 IO流,第五章 IO流,File类 字节流 字符流 二进制流 读取属性文件与XML文件,File类是一个可以对文件本身的属性进行操作的类。 File f1=new File(“d:readme.txt”); 或 File f1=newFile(“d:”,”readme.txt”); 常用的方法: f1.getName(); /获取文件名称 f1.getPath(); /获取文件路径 f1.length(); /获取文件长度 f1.isFile(); /测试当前对象是否为文件 ,5.1 File 类,FileInputStream:用于从文件中获得字节数据。 构造如下: FileInputStream(文件对象)或FileInputStream(文件路径)
8、常用方法: read()和close()。 FileOutputStream:用于从文件中写入字节数据。 构造如下: FileOutputStream(文件对象)或FileOutputStream(文件路径) 常用方法: wrire()和close()。,5.2 字节流,FileReader与BufferedReader: FileReader:读取字符文件的类。用于读取字符流。 BufferedReader:提供通用的缓冲方式读取文本。 实现如下: BufferedReader in=new BufferedReader(new FileReader( “d:readme.txt”); BufferedReafer常用方法: in.read(); /读取单个字符 in.readLine(); /读取一个文本行 in.close(); /关闭并释放资源,5.3 字符流,FileWriter与BufferedWriter: FileWriter:写入字符文件的类。用于写入字符文件。 BufferedWriter:将文本写入字符输出流,缓冲各个字符。 实现如下: BufferedWrite
9、r bw=new BufferedWriter(new FileWriter( “d:readme.txt”); BufferedWriter常用方法: bw. write(int c); /写入单个字符 bw.newLine(); /写入一个文本行 bw.close(); /关闭并释放资源,5.3 字符流,DataOutputStream:允许应用程序以适当方式将基本Java数据类型写入输出流中。 实现如下: DataOutputStream dos=new DataOutputStream(new FileOutputStream(“d:readme.txt”); 常用方法如下: dos.flush(); /清空此数据输入流 dos.writeChars(String s); /写入字符串 dos.writeDouble(double v); /写入double类型的数据 ,5.4 二进制流,DataInputStream:允许应用程序以与机器无关方式从基础输入流中读取基本Java数据类型。 实现如下: DataInputStream dis=new DataInputStream(new FileInputStream(“d:readme.txt”); 常用方法如下: dis.read(byte b); /读取二进制数组 dis.readChar(); /读取一个char值 dis.readDouble(); /读取一个double值 ,5.4 二进制流,读取属性文件: Properties p=new Properties(); InputStream is=test.class.getResourceAsStream(“ad.properties”); p.load(is); 读取XML文件: Properties p=new Properties(); InputStream is=test.class.getResourceAsStream(“ad.xml”); p.loadFromXML(is);,5.5 读取属性
《java语言及面向对象程序设计课件》由会员F****n分享,可在线阅读,更多相关《java语言及面向对象程序设计课件》请在金锄头文库上搜索。