java面向对象编程1

上传人:san****019 文档编号:70866437 上传时间:2019-01-18 格式:PPT 页数:60 大小:471.31KB
返回 下载 相关 举报
java面向对象编程1_第1页
第1页 / 共60页
java面向对象编程1_第2页
第2页 / 共60页
java面向对象编程1_第3页
第3页 / 共60页
java面向对象编程1_第4页
第4页 / 共60页
java面向对象编程1_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《java面向对象编程1》由会员分享,可在线阅读,更多相关《java面向对象编程1(60页珍藏版)》请在金锄头文库上搜索。

1、1,第三章 Java面向对象编程,2,本章重点,传统编程模式 面向对象编程方法 OOP的基本概念和特点 Java中的OOP 理解Java中的各种修饰符 超类和子类 构造函数和重载的构造函数,3,3.1 传统编程模式,面向过程 COBOL FORTRAN C ,4,3.2 面向对象的编程方法,5,3.3 面向对象编程的特点,更强调数据而不是过程 程序被划分为若干个对象 数据结构体现对象的特点 函数和数据结构联系紧密 数据是隐藏的,外部函数无法访问数据 对象之间通过函数联系起来 需要时可以很方便地添加新的数据和函数 遵循自上而下的程序设计方法,6,3.4 OOP的基本概念,类 对象 数据抽象 数据

2、封装 继承 多态,7,类 类是某种类型的所有对象定义共同变量和方 法的模板. 注意 类是用户定义的数据类型,它包括一个对象的 所有数据和代码.,3.4 OOP的基本概念,8,3.4 OOP的基本概念,对象 everything is an object 现实世界的对象: 桌子、书、自行车、电视、狗、文件、表格、按钮、窗口 对象的组成 数据 操作数据的代码 类和对象的关系 类是对象的模板(template)/抽象 一个对象是类的一个实例(instance),9,3.4 OOP的基本概念,类是一个定义一个对象的属性和行为并且在设计的时候产生的模板或蓝图,一个对象是一个关于类的运行实例,它占用内存并

3、且拥有一定的生命周期,123,245,12,245,10,3.4 OOP的基本概念,数据抽象 抽象是从大量的背景细节和详细解释中提取共 同的实质性要素的过程. 数据抽象 过程抽象,11,3.4 OOP的基本概念,数据封装 对象本身的数据得到保护/隐藏 其他对象仅仅需要知道对该对象的访问方法(接口/interface)即可 封装的好处 模块化-每个对象的源文件可以是相互独立的,可以被不同的程序调用,每个对象是一块积木,可以搭建不同的形状 信息隐藏-通常定义一个公共接口/方法实现对对象的访问,可以调整对象的私有信息和方法,而不会对其他调用它的对象产生影响,12,3.5 在Java中创建类和对象,创

4、建类 类是用来创建对象的蓝图或原型. 类的构建 类的声明 类的主体,13,3.5 在Java中创建类和对象,类的声明 类修饰符 class 类名 extends 父类名 implements 接口名 常见的类修饰符 public: Declares that the class can be used by any class regardless of its package (无任何限制) abstract: Declares that the class cannot be instantiated (声明该类不能被实例化,抽象类, 出现在继承关系中) final: Declares t

5、hat the class cannot be subclassed (声明该类不能有子类) 无修饰: a class can be used only by other classes in the same package (仅仅能被同一个包中的其他类引用),14,3.5 在Java中创建类和对象,类主体 类主体包含两个部分:变量声明和方法 class ClassName Membervariable Declarations; Method Declarations; ,15,3.5 在Java中创建类和对象,成员变量声明 修饰符 类型 变量名; 修饰符 类型 变量名 =初值; 修饰符

6、类型 变量名 =初值 ,变量名 =初值; 成员方法定义 类成员修饰符 方法返回类型 方法名 () throws 异常名 方法体; 修饰符 访问权限修饰符:public/protected/private 类型修饰符:static/final/transient/volatile,16,public (公共变量/公共方法) 容许全权访问,无任何限制 (先构造对象,再访问),3.5 在Java中创建类和对象,同一个包中 class A A() ; public int x; public void print() ; class B void test() A a = new A(); a.x =

7、 100; a.print(); ,不在同一个包中 package abc; public class A public A() ; public int x; public void print() ; package xyz; import abc.A; class B void test() A a = new A(); a.x = 100; a.print(); ,直接访问公有变量x 和公共方法print(),17,private (私有变量/私有方法) 仅能在其所定义的类中被访问(先构造对象,再访问),D:javac A.java D:javac B.java x has priva

8、te access in A a.x = 100; print() has private access in A a.print(); 2 errors,3.5 在Java中创建类和对象,同一个包中 class A private int x; private void print() ; void test () print(); class B void test() A a = new A(); a.x = 100; a.print(); ,18,protected (保护变量/保护方法) 容许类本身、同一个包中所有类、以及子类访问(先构造对象,再访问),3.5 在Java中创建类和对

9、象,同一个包中 class A protected int x; protected void print() ; class B void test() A a = new A(); a.x = 100; a.print(); ,不在同一个包中 package abc; public class A public A() ; protected int x; protected void print() ; package xyz; import abc.A; class B extends A void test(B b) b.x = 100; b.print(); ,19,无修饰 (友好

10、变量/友好方法) 容许类本身以及同一个包中所有类访问,3.5 在Java中创建类和对象,同一个包中 class A A() ; int x; void print() ; class B void test() A a = new A(); a.x = 100; a.print(); ,同一个包中 package abc; class A A() ; int x; void print() ; package abc; class B void test() A a = new A(); a.x = 100; a.print(); ,20,访问权限修饰符小结,3.5 在Java中创建类和对象,

11、21,static (静态变量/静态方法) 类的变量/方法,独立于类的对象,即不属于任何一个类的具体对象,而是所有对象共享。可以直接根据类名调用 class S static int A = 12, B = 34; static void print() ; class Test public static void main(String args) System.out.println(“A=“ + S.A + “ B=“ + S.B); S.print(); ,3.5 在Java中创建类和对象,22,static (静态变量/静态方法),class Test public void pr

12、int(int x) System.out.println(x); public static void main(String args) int x = 3; print(x); ,D:javac Test.java Test.java:9: non-static method print(int) cannot be referenced from a static context print(x); 1 error,3.5 在Java中创建类和对象,23,static (静态变量/静态方法),class Test Test() ; public void print(int x) Sy

13、stem.out.println(x); public static void main(String args) int x = 3; Test t = new Test(); t.print(x); ,class Test public static void print(int x) System.out.println(x); public static void main(String args) int x = 3; print(x); ,static方法中仅仅可以调用其他static方法,3.5 在Java中创建类和对象,24,final 变量/方法 final变量: 定义一个常

14、数,即变量值不能改变 final double AVOGADRO = 6.022e23; final类: 不能有子类 final方法: 方法不能被重写(overriding),不能被子类重新定义,3.5 在Java中创建类和对象,class A final void print() System.out.println(“1”); class B extends A void print() System.out.println(“1”); ,25,3.5 在Java中创建类和对象,transient 标识出不属于对象稳定状态组成部分的特定成员变量. volatile 声明变量可被异步修改.,

15、26,3.5 在Java中创建类和对象,方法的重载 方法重载是指多个方法享有相同的名字,但是这些方法的参数必须不同,或者是参数的个数不同,或者是参数类型不同。 返回类型不能用来区分重载的方法。,27,3.5 在Java中创建类和对象,方法的重载(overload) 方法名相同,但方法的参数不同 方法描述 方法名(标识符) 参数类型 方法返回值 绝对值 abs(a) int int 绝对值 abs(a) long long 绝对值 abs(a) float float 绝对值 abs(a) double double public static int abs(int a) public static long abs(long a) public static float abs(float a) public static double abs(double a),28,3.5 在Java中创建类和对象,方法的重载,import java.io.*; c

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号