Enviar pesquisa
Carregar
2, object oriented programming
•
0 gostou
•
291 visualizações
ted-xu
Seguir
What is OOP? a basic intro
Leia menos
Leia mais
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 31
Recomendados
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Justin Lin
Java SE 7 技術手冊投影片第 12 章 - 通用API
Java SE 7 技術手冊投影片第 12 章 - 通用API
Justin Lin
Java SE 8 技術手冊第 12 章 - Lambda
Java SE 8 技術手冊第 12 章 - Lambda
Justin Lin
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Justin Lin
Java SE 7 技術手冊投影片第 10 章 - 輸入輸出
Java SE 7 技術手冊投影片第 10 章 - 輸入輸出
Justin Lin
Recomendados
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Justin Lin
Java SE 7 技術手冊投影片第 12 章 - 通用API
Java SE 7 技術手冊投影片第 12 章 - 通用API
Justin Lin
Java SE 8 技術手冊第 12 章 - Lambda
Java SE 8 技術手冊第 12 章 - Lambda
Justin Lin
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Justin Lin
Java SE 7 技術手冊投影片第 10 章 - 輸入輸出
Java SE 7 技術手冊投影片第 10 章 - 輸入輸出
Justin Lin
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Justin Lin
Java SE 8 技術手冊第 15 章 - 通用API
Java SE 8 技術手冊第 15 章 - 通用API
Justin Lin
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Justin Lin
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Justin Lin
從模組到類別
從模組到類別
Justin Lin
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
Justin Lin
Java Script 引擎技术
Java Script 引擎技术
bigqiang zou
Java SE 8 技術手冊第 10 章 - 輸入輸出
Java SE 8 技術手冊第 10 章 - 輸入輸出
Justin Lin
Java 網路程式
Java 網路程式
PingLun Liao
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
《Python 3.5 技術手冊》第六章草稿
《Python 3.5 技術手冊》第六章草稿
Justin Lin
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Justin Lin
Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件
Justin Lin
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
Justin Lin
Ecma script edition5-小试
Ecma script edition5-小试
lydiafly
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 6 章 - 繼承與多型
Justin Lin
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Justin Lin
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Justin Lin
IOS入门分享
IOS入门分享
zenyuhao
Informatie, Middel Voor Gezonde Sturing
Informatie, Middel Voor Gezonde Sturing
Daan Blinde
Harsh Pershad (Innovate UK) presenting 'Funding Opportunities from Innovate U...
Harsh Pershad (Innovate UK) presenting 'Funding Opportunities from Innovate U...
UK Carbon Capture and Storage Research Centre
Mais conteúdo relacionado
Mais procurados
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Justin Lin
Java SE 8 技術手冊第 15 章 - 通用API
Java SE 8 技術手冊第 15 章 - 通用API
Justin Lin
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Justin Lin
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Justin Lin
從模組到類別
從模組到類別
Justin Lin
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
Justin Lin
Java Script 引擎技术
Java Script 引擎技术
bigqiang zou
Java SE 8 技術手冊第 10 章 - 輸入輸出
Java SE 8 技術手冊第 10 章 - 輸入輸出
Justin Lin
Java 網路程式
Java 網路程式
PingLun Liao
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
《Python 3.5 技術手冊》第六章草稿
《Python 3.5 技術手冊》第六章草稿
Justin Lin
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Justin Lin
Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件
Justin Lin
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
Justin Lin
Ecma script edition5-小试
Ecma script edition5-小试
lydiafly
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 6 章 - 繼承與多型
Justin Lin
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Justin Lin
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Justin Lin
IOS入门分享
IOS入门分享
zenyuhao
Mais procurados
(20)
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 15 章 - 通用API
Java SE 8 技術手冊第 15 章 - 通用API
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
從模組到類別
從模組到類別
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
Java Script 引擎技术
Java Script 引擎技术
Java SE 8 技術手冊第 10 章 - 輸入輸出
Java SE 8 技術手冊第 10 章 - 輸入輸出
Java 網路程式
Java 網路程式
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
《Python 3.5 技術手冊》第六章草稿
《Python 3.5 技術手冊》第六章草稿
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
Ecma script edition5-小试
Ecma script edition5-小试
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
IOS入门分享
IOS入门分享
Destaque
Informatie, Middel Voor Gezonde Sturing
Informatie, Middel Voor Gezonde Sturing
Daan Blinde
Harsh Pershad (Innovate UK) presenting 'Funding Opportunities from Innovate U...
Harsh Pershad (Innovate UK) presenting 'Funding Opportunities from Innovate U...
UK Carbon Capture and Storage Research Centre
7, reusing classes
7, reusing classes
ted-xu
01 Gedda Jfk2009
01 Gedda Jfk2009
Pierre Trudelle
Copia de experiencia de aula
Copia de experiencia de aula
olguita1975
cv
cv
SRIJAN ROY
Handleiding Forecast Solution Shared
Handleiding Forecast Solution Shared
Daan Blinde
4, grep
4, grep
ted-xu
Каталог Bravolli
Каталог Bravolli
Grigory Grigorev
Master Genzyme Presentation
Master Genzyme Presentation
engelske
Formation Gestalt IFFP 2017
Formation Gestalt IFFP 2017
Institut Français de Formation Psychocorporelle
Seo in raipur
Seo in raipur
Deepak Nagraj
три дерева - Three Trees
три дерева - Three Trees
Freekidstories
Welcome To Deep Tissue Massage
Welcome To Deep Tissue Massage
William Burton LMT CMCE
Destaque
(14)
Informatie, Middel Voor Gezonde Sturing
Informatie, Middel Voor Gezonde Sturing
Harsh Pershad (Innovate UK) presenting 'Funding Opportunities from Innovate U...
Harsh Pershad (Innovate UK) presenting 'Funding Opportunities from Innovate U...
7, reusing classes
7, reusing classes
01 Gedda Jfk2009
01 Gedda Jfk2009
Copia de experiencia de aula
Copia de experiencia de aula
cv
cv
Handleiding Forecast Solution Shared
Handleiding Forecast Solution Shared
4, grep
4, grep
Каталог Bravolli
Каталог Bravolli
Master Genzyme Presentation
Master Genzyme Presentation
Formation Gestalt IFFP 2017
Formation Gestalt IFFP 2017
Seo in raipur
Seo in raipur
три дерева - Three Trees
три дерева - Three Trees
Welcome To Deep Tissue Massage
Welcome To Deep Tissue Massage
Semelhante a 2, object oriented programming
5, initialization & cleanup
5, initialization & cleanup
ted-xu
[圣思园][Java SE]Jdk5
[圣思园][Java SE]Jdk5
ArBing Xie
GDSC FCU 第2堂 Kotlin
GDSC FCU 第2堂 Kotlin
FCUGDSC
Ecmascript
Ecmascript
jay li
10, inner classes
10, inner classes
ted-xu
Sun java
Sun java
softwaredesigner
中远公司 Java培训资料
中远公司 Java培训资料
yiditushe
Java面试笔试题大汇总
Java面试笔试题大汇总
yiditushe
Java相关基础知识
Java相关基础知识
yiditushe
12, string
12, string
ted-xu
Python面向对象开发基础篇
Python面向对象开发基础篇
modou li
2. java introduction
2. java introduction
netdbncku
模块一-Go语言特性.pdf
模块一-Go语言特性.pdf
czzz1
Jdk5
Jdk5
Medivh2011
Java程序员面试之葵花宝典
Java程序员面试之葵花宝典
yiditushe
Excel VBA
Excel VBA
Dick Lam
Java面试题集
Java面试题集
yiditushe
Notes of jcip
Notes of jcip
Dai Jun
9, interfaces
9, interfaces
ted-xu
[圣思园][Java SE]Reflection
[圣思园][Java SE]Reflection
ArBing Xie
Semelhante a 2, object oriented programming
(20)
5, initialization & cleanup
5, initialization & cleanup
[圣思园][Java SE]Jdk5
[圣思园][Java SE]Jdk5
GDSC FCU 第2堂 Kotlin
GDSC FCU 第2堂 Kotlin
Ecmascript
Ecmascript
10, inner classes
10, inner classes
Sun java
Sun java
中远公司 Java培训资料
中远公司 Java培训资料
Java面试笔试题大汇总
Java面试笔试题大汇总
Java相关基础知识
Java相关基础知识
12, string
12, string
Python面向对象开发基础篇
Python面向对象开发基础篇
2. java introduction
2. java introduction
模块一-Go语言特性.pdf
模块一-Go语言特性.pdf
Jdk5
Jdk5
Java程序员面试之葵花宝典
Java程序员面试之葵花宝典
Excel VBA
Excel VBA
Java面试题集
Java面试题集
Notes of jcip
Notes of jcip
9, interfaces
9, interfaces
[圣思园][Java SE]Reflection
[圣思园][Java SE]Reflection
Mais de ted-xu
11, OCP - awr & alert system
11, OCP - awr & alert system
ted-xu
10, OCP - flashback
10, OCP - flashback
ted-xu
9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman
ted-xu
8, OCP - backup with rman
8, OCP - backup with rman
ted-xu
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery
ted-xu
6, OCP - oracle security
6, OCP - oracle security
ted-xu
5, OCP - oracle storage
5, OCP - oracle storage
ted-xu
4, OCP - oracle networking
4, OCP - oracle networking
ted-xu
3, OCP - instance management
3, OCP - instance management
ted-xu
2, OCP - installing and creating a database
2, OCP - installing and creating a database
ted-xu
1, OCP - architecture intro
1, OCP - architecture intro
ted-xu
12, OCP - performance tuning
12, OCP - performance tuning
ted-xu
7, business event system
7, business event system
ted-xu
6, workflow miscellaneous
6, workflow miscellaneous
ted-xu
5, workflow function activity
5, workflow function activity
ted-xu
4, workflow tables & api
4, workflow tables & api
ted-xu
3, workflow in ebs
3, workflow in ebs
ted-xu
2, a simple workflow
2, a simple workflow
ted-xu
1, workflow intro
1, workflow intro
ted-xu
8, bes tables & api
8, bes tables & api
ted-xu
Mais de ted-xu
(20)
11, OCP - awr & alert system
11, OCP - awr & alert system
10, OCP - flashback
10, OCP - flashback
9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman
8, OCP - backup with rman
8, OCP - backup with rman
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery
6, OCP - oracle security
6, OCP - oracle security
5, OCP - oracle storage
5, OCP - oracle storage
4, OCP - oracle networking
4, OCP - oracle networking
3, OCP - instance management
3, OCP - instance management
2, OCP - installing and creating a database
2, OCP - installing and creating a database
1, OCP - architecture intro
1, OCP - architecture intro
12, OCP - performance tuning
12, OCP - performance tuning
7, business event system
7, business event system
6, workflow miscellaneous
6, workflow miscellaneous
5, workflow function activity
5, workflow function activity
4, workflow tables & api
4, workflow tables & api
3, workflow in ebs
3, workflow in ebs
2, a simple workflow
2, a simple workflow
1, workflow intro
1, workflow intro
8, bes tables & api
8, bes tables & api
2, object oriented programming
1.
面向对象编程
2.
Agenda •
OOP简介 - 1 • OOP简介 - 2 • 类 和 对象 • Java包 • import static • Java包 - 编译及运行 • 属性和方法 • 属性: 原语类型 1/22/2013 Course - J2SE Basic
3.
•
属性: 非原语类型 • static关键字 • static块 • 类访问控制 • 成员访问控制 • 属性声明 • 方法声明 • 属性初始化 1/22/2013 Course - J2SE Basic
4.
OOP-1 • 面向对象编程, 简称OOP; •
OOP在于对问题域进行抽象和分解,生成领 域模型. 比如制造一辆汽车: 1/22/2013 Course - J2SE Basic
5.
OOP-2 • 一切都是对象; • 程序由相互交互的对象组成; •
每个对象都有自己的内存空间, 并引用其他 的对象; • 每个对象都有自己的类型; • 同一种类型的对象具有相同的接口. 1/22/2013 Course - J2SE Basic
6.
类和对象 • 类是对象的模板; 根据类的定义,
从而创建相应的对象; • 类的定义 关键字class, 用于在java中声明一个类, 一个 源文件中只能有一个public访问类型的类, 并且该类的名称与源文件名称相同. 比如: Integer.java对应public class Integer {……} • 示例 Light表示一个类, 对应的是现实生活中的 灯泡.Light有价格(price), 大小规格(size)等属性; 并提供了打开(on), 关闭(off), 加亮(brighten), 减暗(dim)等接口供调用; • 对象的定义 关键字new, 用于创建一个对象, 示例: Light lt = new Light(); // 这里lt就是一个对象 1/22/2013 Course - J2SE Basic
7.
类和对象 • 可以在一个java源文件中定义多个类, 如果
有public类, 则该类的名称必须与文件名相同. • 参考: demo/Demo1.java 1/22/2013 Course - J2SE Basic
8.
Java包 • Java包机制的好处: 1, 避免名字空间污染; 2,
可以根据不同的模块/组件定义相应的包名; • 关键字package, 出现在java原文件开头, 声明java包; 如果包有多个层次使用”.”分割; • 关键字import 用于引用某个包下面的类: 1, import java.util.Map; 引用单个类 2, import java.util.*; 引用该包下面所有的类 默认情况下会自动引入java.lang包, 因此该包下面的Integer/Double等类可以被直接使用. • 示例: package demo; public class HelloWorld { public static void main(String[] args) { System.out.println("hello world"); } } 1/22/2013 Course - J2SE Basic
9.
import static • 这是在jdk5中引入的一个新特性,
用于 import某个类下面的static方法, 这样在调用 该方法时可以直接写成methodCall()的形式, 而无需写成someClass.methodCall()的形式; • 通过.*的写法引入类下面的所有static方法; • 约定: 在以后的示例中经常会引入util.Print.*, 以简化程序; • 示例: demo/Demo7.java 1/22/2013 Course - J2SE Basic
10.
Java包
编译及运行 • 将该java源文件放在包声明的子目录下面, 这里的包名是demo, 因此放在demo子目录 下面; 如果是包分了多个层次, 则需要创建 相应的目录层次. 比如, java.util包对应的目 录是java/util • 按照如下方式编译运行: 1/22/2013 Course - J2SE Basic
11.
属性和方法 • Java类由两部分组成: 属性和方法.
示例: public class Light { double price; // 价格属性 double size; // 大小属性 public void on() {} //方法: 打开 public void off() {} //方法: 关闭 public void brighten() {} //方法: 加亮 public void dim() {} //方法: 变暗 …………. • 属性可以是基本的数据类型, 比如整型, bool型; 也可以是其他对象的引 用; • Light类的属性: price, size; • Light类的方法: on, off, brighten, dim; • 参考: demo/Light.java 1/22/2013 Course - J2SE Basic
12.
属性: 原语类型 •
原语类型属性是指整型, 长整型, 浮点型, 双精度浮点型等基本数据类型, 比如: int i = 5; // 整型原语类型 boolean isCertified = false; // 布尔型原语类型 • 每个原语类型对应一个包装类, 比如int对应java.lang.Integer. 原语类型的数据范 围: 1/22/2013 Course - J2SE Basic
13.
属性:非原语类型 • 非原语类型有: 1, 对象 String
s = “abc”; // 字符串对象 Map map = null; // 键值对象 2, 数组对象 表示某个原语类型或者对象的集合. 1), Java中声明一个数组, eg: int[] ia = {1,2,3,4}; // 也可以写成int ia[] = ...... int[] ia = new int[4]; // 数组长度为4, 各个元素的值均为0 Object[] objs = new Object[8]; // 数组长度为8, 各个元素均为null 示例: demo/Demo10.java 2), 数组在声明时不能指定长度, 不能写为: int[4] ia = {1,2,3,4}; // error 3), 数组的长度使用数组的属性length得到, 比如上面的 ia.length等于4 1/22/2013 Course - J2SE Basic
14.
static关键字 • static关键字用于修饰属性或者方法, 表示该成员是
class级别的; static成员通常使用类名进行引用, 比如: MyClassName.SOME_STATIC_MEMBER; • static成员通常用于声明某些常量, 比如: public static final String CNT_CUSTOMER = “someone”; • static方法 静态方法, 典型的static方法是main方法: public static void main(String[] args) {…} • 非static成员是对象级别的, 在对象初始化时会进行 初始化; 1/22/2013 Course - J2SE Basic
15.
static块 • static块用于在类的第一个对象被初始化或
者static成员被访问时执行一些初始化工作, 比如: static { System.out.println("i'm a static block"); } • 参考: demo/Demo2.java 1/22/2013 Course - J2SE Basic
16.
类访问控制 • public 该类为一个公共类, 可以在仸何地方被引用; 注意:
在一个源文件中只能有一个声明为 public的类; 示例: public class YourClassName {….} • N/A 没有修饰符, 该类为包访问权限, 表示该类只 能在当前包下面被引用; 示例: class YourClassName {….} 1/22/2013 Course - J2SE Basic
17.
类访问控制 • public 该类为一个公共类, 可以在仸何地方被引用; 注意:
在一个源文件中只能有一个声明为 public的类; 示例: public class YourClassName {….} • N/A 没有修饰符, 该类为包访问权限, 表示该类只 能在当前包下面被引用; 示例: class YourClassName {….} 1/22/2013 Course - J2SE Basic
18.
成员访问控制 Java提供了4种成员访问级别: 私有/受保护/公开/默认 • 私有访问级别 private关键字对成员进行修饰,
只允许在当前 类中访问该成员; • 受保护访问级别 protected关键字, 允许在当前类及子类中访问; • 公开访问级别 public关键字, 可以在仸何地方访问; • 默认访问级别 也称包访问级别, 允许当前类和包下面的其他类访问. 1/22/2013 Course - J2SE Basic
19.
属性声明 • 根据已经讲到的成员访问控制和static关键
字, 可以对一个属性进行声明. • 示例: private int i; // 私有访问整型 public static int REFERENCE_COUNT; // 静态公共整型 protected String name; // 受保护字符串类型 1/22/2013 Course - J2SE Basic
20.
方法声明 • 方法声明遵循如下格式: Modifier ReturnType
methodName( /* Argument list */ ){ /* Method body */ } • Modifier 修饰符, 包括成员访问控制修饰符, 是否为静态方法 (static); • ReturnType 返回值类型, 方法可以返回原语类型(int, double, long), 也可以返回对象的引用; void表示方法没有返回值; • methodName 方法名称 • Argument list 方法参数列表 • 示例: public String getCustomerName() {……} public void calcSum(int max) {…} 1/22/2013 Course - J2SE Basic
21.
属性初始化 •
对于原语类型, 如果不指定初始化的值, 则按如下赋予初始化值: boolean false char ‘u0000’ (null) byte (byte)0 short (short)0 int 0 long 0L float 0.0f double 0.0d • 示例: 1, int i = 5; // 属性i已经指定了初始值 2, int i; // 属性i没有指定初始值, 默认初始化为0 1/22/2013 Course - J2SE Basic
22.
属性初始化(续) • 对于对象类型的属性, 如果没有指定初始值
则初始化为null值; • 示例: String s; // 没有指定初始值, 初始化为null String s = “abc”; // 初始值abc 1/22/2013 Course - J2SE Basic
23.
null和空指针异常 • 空指针异常在java语言中臭名远播, 导致该
异常的原因是在对象正确初始化之前(此时 对象的值是null), 调用了该对象上的方法. eg: String s = null; System.out.println(s.toString()); // 空指针异常 • 在java中空指针异常是一种很常见的异常, 通常可以认为是程序的bug, 需要尽力避免. 1/22/2013 Course - J2SE Basic
24.
引用 &赋值 • Java语言中的对象实际上是指向该对象的一个引用.
eg: ClassA obj1 = new ClassA(); new关键字会导致一个ClassA对象被初始化, 并在堆上分配相应的内存区域; 对象创建完成 之后会返回一个指向该对象的引用及obj; Ref: obj1 int long String • Java中对象的赋值操作传递的是对象引用. eg: ClassA obj2 = obj1; 赋值之后obj2与obj1指向同一块内存区域 Ref: obj1 int Course - J2SE Basic long String Ref: obj2 1/22/2013
25.
引用 &赋值
数组 • Java中数组的赋值操作与对象类似, 赋值后 的数组引用将指向同一个数组对象, eg: int[] ia1 = ...; int[] ia2 = ia1; // ia1, ia2指向同一个数组对象 • 示例: demo/Demo20.java 1/22/2013 Course - J2SE Basic
26.
封装(encapsulation) • 类可以被认为是一种service, 提供给使用者
调用; • 封装指的是类只暴露出相关的接口, 而屏蔽 其内部的实现; 这样带来的好处是: 在保持 外部接口不变的情况下, 能够更改内部实现; • 封装是OO的一个基本概念. Java通过包, 类/ 属性/方法访问权限等提供对封装的支持. 1/22/2013 Course - J2SE Basic
27.
继承(inherition) • 继承提供了一种方式用于实现现有类的重用, Java中
的继承通过extends关键字实现. eg: public ClassA extends ClassB {…} 在此类中ClassA是ClassB的子类, 后者是前者的父类. ClassA继 承了父类的所有public方法, 比如某方发是ClassB中定义的, 在 继承之后可以在ClassA上直接调用该方法. • 继承表示的是一种is-a关系, 上例中ClassA的对象是 一个ClassB, 在代码中这种is-a关系可以表示为: ClassA obj = new ClassB(); • Java中所有的类, 包括自定义的类, 都继承自 java.lang.Object, 该类包含了一些很重要的方法以后 会讲到. • 示例: demo/Demo3.java 1/22/2013 Course - J2SE Basic
28.
覆盖和重载
(override & overload) • 方法的覆盖(override)是指子类重新实现父类已 有的方法, 方法的签名(包含方法名称和参数列 表)保持一致; • 方法的重载(overload)是指 在同一个类中有多 个名称相同的方法, 但是它们的参数签名不同. eg: public void method1(String s); public void method1(int i); • 注意: 仅更改方法的返回类型不能构成重载, 这 样会导致编译错误. • 示例: demo/Demo4.java 1/22/2013 Course - J2SE Basic
29.
组合 • 组合是区别于继承的另一种重用技术, 通过
将现有的类作为当前类的一个成员, 进而重 用该类的功能; eg: class ClassA … class ClassB { ClassA reference; … } • 组合表达的是一种has-a关系, 在很多情况下 组合被认为是优于继承(is-a)的重用技术; • 示例: demo/Demo5.java 1/22/2013 Course - J2SE Basic
30.
多态(polymorphic) •
多态是指在运行时决定具体方法的调用. Client Base service() Service1 Service2 在Client中编写如下代码, 哪一个类的service方 法会被调用呢? Base obj = getServiceImpl(); obj.service(); • 多态性决定了具体service方法的调用由运行时返回哪一个Base的实现决定, 如 果返回Base则调用Base上的实现, 如果返回Service1则调用Service1的实现; • 多态性是面向对象编程的一大基石, 为模块化开发/可插拔式开发提供了基础. • 示例: demo/Demo6.java 1/22/2013 Course - J2SE Basic
31.
The END 1/22/2013
Course - J2SE Basic