面向对象 程序设计语言基础 马骏 majun@nju.edu.cn.

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

Java 大学实用教程 ( 第 3 版 ) 主讲:程继洪 第 1 章 Java 语言概述  本章导读 Java 语言的诞生Java 语言的诞生 学习 Java 的必要性 学习 Java 的必要性 Java 的特点及与 C/C++ 之关系Java 的特点及与 C/C++ 之关系.
第 2 章 Java 运行环境搭建 2.1 Java 的运行系统 2.1 Java 的运行系统 2.2 JDK 的安装与配置2.2 JDK 的安装与配置 2.3 Java 开发工具包 2.4 Java 源文件编辑环境的选择 2.5 Application 和 Applet 程序的编写与运行.
1 Java 语言程序设计 计算机系 鲍金玲. 2 引子 甲骨文 甲骨文是全球最大的信息管理软件及服务供应商,成立于 1977 年,公司总部 设在美国加利福尼亚州的红木城( Redwood Shores ),全球员工达 名, 包括 名开发人员、 7500 多名技术支持人员和.
Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
第一章 Java 程序设计技术 概述  什么是 Java 语言  一个简单的 Java 程序  程序的编译和运行  常见错误  使用 Java 核心 API 文档.
程序设计语言基础 软件工程系 秦晓燕. 课程目标 了解面向对象程序设计的思想,以及软件 开发流程。 学习 Java 语言的基本概念和编程方法,基 本掌握 Java 类库的使用。 能够利用所学的方法开发简单的小型应用 程序.
Java 程序设计 案例教程 北京大学出版社 第 01 章. Java 程序设计案例教程 第 01 章 Java 语言与面向对象程序设计 Java 语言的历史 Java 语言的特点 Java 程序的分类 Java 环境配置 Eclipse 的安装 Java 程序的调试 教学目标.
JAVA 概述 主讲:张雷. J2ME API 地址: 广东科贸信息工程 张雷学习要求 了解各种程序设计语言及其特点 了解各种程序设计语言及其特点 了解 JAVA 的发展史和其特点 了解 JAVA 的发展史和其特点.
Java 程序设计(第二版) 普通高等教育 “ 十一五 ” 国家级规划教材 辛运帷等 编著 徐小平 主讲.
Java语言的特点 Java开发环境的搭建
第四章 类、对象和接口.
第三讲 面向对象(上).
第1章 Java语言概述.
《 Java开发环境配置》 主讲人:耿力.
Java 2实用教程(第3版)教学课件 主讲教师:张国平
Java程序设计教程 第一讲 Java概述.
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
四資二甲 第三週作業 物件導向程式設計.
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
JAVA程序设计.
面向对象的程序设计(一).
《Java程序设计之网络编程》 教学课件 重庆大学计算机学院
北京科技大学天津学院 信息工程系 面 向 对 象 程 序 设 计 第1讲 Java初探 主讲:于静.
计算机学院计算机科学与技术系 中德联合软件技术研究所 李波
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
精英型软件人才 培养模式的探索与实践 卢 苇 北京交通大学国家示范性软件学院.
程設一.
第1章 java简介及环境搭建 第1章 Java简介及开发环境搭建.
Ch07 介面與多重繼承 物件導向程式設計(II).
第17章 使用B4J建立跨平台應用程式 17-1 認識B4J整合開發環境 17-2 下載與安裝B4J開發環境
安裝JDK 安裝Eclipse Eclipse 中文化
Java簡介.
JDK的安裝.
第十一章 面向对象设计 第十二章 面向对象实现
第六章 类的扩展与继承.
第一章 電腦、程式與JAVA.
CH09 套件 物件導向程式設計(II).
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第一章 認識Java Java 程式設計入門(I).
2018/12/7 Java语言程序设计 教师:段鹏飞.
Java基础入门 第1章 Java开发入门 · Java语言的特点 · Java开发环境的搭建 · 环境变量的配置 · Java的运行机制.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
移动系统中的Java虚拟机 徐伟刚.
二:JAVA开发环境的安装和配置.
認識 Java.
程式設計 老師:戴自強 助教:楊斯竣.
C/C++/Java 哪些值不是头等程序对象
第 1 章 Java 簡介.
01.Java语言概述 讲师:复凡.
第1章 Java语言概述 学习目标 本章要点 上机练习 习 题.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
《JAVA程序设计》 语音答疑 辅导老师:高旻.
第三课 标识符、关键字、数据类型.
開發Java程式語言的工具 JDK.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
程式設計 老師:蘇炳煌 助教:楊斯竣.
C++复习2----类与对象.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
Interfaces and Packages
第三章 数据抽象.
第二章 Java语法基础.

98專題報告 行動裝置應用實例 -個人名片管理助手程式
李青樺 陳筱綺 郭沛翎 黃斐琪 蔡佳娟 指導老師 : 葉佳益老師
第二章 Java基本语法 讲师:复凡.
第6章 面向对象的高级特征 学习目标 本章要点 上机练习 习 题.
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
第二章 Java基础语法 北京传智播客教育
Presentation transcript:

面向对象 程序设计语言基础 马骏 majun@nju.edu.cn

面向对象程序设计

面向对象程序设计语言 支持面向对象程序设计思想的编程语言 simula 67,Smalltalk… C++,JAVA,C#,Python…

Machine Level Language Code 编译执行VS解释执行 效率高 平台相关 Machine Level Language Code Source Code Interpret Each Instruction Line by Line 效率低 平台无关 PASCAL,C/C++,C#... RUBY,MATLAB,JavaScript…

两者的结合 兼顾编译执行与解释执行的优点: 平台无关 “高效率”

Java的诞生和发展 前身 诞生 JDK版本 三个平台(JDK1.3开始) 1995-1997,JDK1.0-JDK1.1 1991年,Sun公司的Green项目,Oak,James Gosling 诞生 1994年,改名Java JDK版本 1995-1997,JDK1.0-JDK1.1 1998年,JDK1.2(JAVA2) 2010年,Sun公司被Oracle收购 Now,JDK 10 三个平台(JDK1.3开始) J2ME(嵌入式平台) J2SE(标准平台) J2EE(企业级平台)

Java语言的特点及优势 简单性和完全面向对象 平台无关性 有选择的继承了C++的语法规则和面向对象的基本机制 结构,指针,#define语句,多重继承,全局变量和函数,GOTO语句 ,操 作符重载 平台无关性 Java虚拟机:JVM “Write once,run anywhere”

JVM、JRE、 JDK Java虚拟机(java virtual machine , JVM) 一个应用程序,运行于实际的物理计算机之上 定义了指令集、寄存器集、栈、垃圾收集堆、内存区域等五个逻辑部分,提供了跨平台能力的基础框架 实现了统一的计算机,是java程序运行的平台 Java运行时环境(Java Runtime Environment,JRE) 运行、测试和传输应用程序的 Java 平台 包括 Java 虚拟机、Java 平台核心类和支持文件 不包含开发工具 — 编译器、调试器和其它工具 JDK即Java Develop Kit,Java开发工具包 包括: java类库 java编译器 java解释器 JRE java命令行工具

JVM、JRE、 JDK JDK与JRE的简单的区别: JDK可以编译java源文件;jre只能执 行class字节码,不能编译java源文件 JRE是JAVA运行环境,只能运行被编 译好的字节码文件而已,它没有编 译工具;而JDK含有开发程序所需的 调试、编译、运行的基本工具。例 如: javac.exe是包含在jdk中,jre中没有,只 是执行环境。 如果仅仅是为了运行Java程序,而不 是从事Java开发,可以直接下载JRE

JVM、JRE、 JDK

面向对象程序设计

HelloWorldApp.Java 类方法 程序入口 包名 定义类

Java的package 从逻辑概念看,包(package)是类 的集合,一个包中包含多个类 从存储概念看,包是类的组织方式 一个包对应一个文件夹,一个文件夹中 包含多个字节码文件; 包与类的关系,就像文件夹与文件的关 系 包中还可以再有子包,称为包等级,子 包对应一个子文件夹

Java的package 一个.java文件中可以定义多个class 但最外层class只能有一个申明为public 内部类 同一个.java文件中的所有类,经过编 译后分别生成对应的.class文件,处 于相应package所对应的文件夹中

类的定义(Java) 声明类 类声明 { 成员变量的声明; 成员方法的声明及实现; } [修饰符] class 类<泛型> [extends 父类] [implements 接口列 表] 例子 public class Date1 //类声明 int year, month, day; //声明成员变量 public abstract

类的定义(Java) 构造函数,创建对象时刻自动调用,完成初始化 一个类可以定义多个构造函数(具有不同的参数个数、参数类型…)

类的定义(C++) 构造函数,完成初始化 一个类可以定义多个构造函数(具有不同的参数个数、参数类型…) 析构函数, 对象销毁时自动调用;、参数类型…)

构造函数 没有返回值、函数名为类名的函数 用于初始化对象的各个成员 一个类可以定义多个构造函数(具有不同的参数个数、参数类型…) 如果不显式定义构造函数,系统会自动提供一个不带任何参数的默认构 造函数 一旦显式定义了一个构造函数,系统不再提供默认构造函数

类的定义(C++)

类的定义(C++)

创建实例(Java VS C++) Point p3; ?

对象的生命周期(Java) 所有对象均通过new 创建,无 需显示调用 delete Garbage Collection 静态对象:在第一次进行作用域时 被创建,在main退出后被销毁(若 程序不进入其作用域,则不会被创 建)。 局部对象:在进入作用域时被创 建,在退出作用域时被销毁。 所有对象均通过new 创建,无 需显示调用 delete

Java的析构函数 public void finalize() //析构方法 { 语句序列; } GC在进行垃圾收集的时候会自动调用对象的finalize方法,用来进行一些用户自定义的 非内存清理工作,因为垃圾收集器不会处理内存以外的东西。 GC以独立的低优先级的方式运行,只有当其他线程挂起等待该内存释放的情况出现时, 它才开始运行释放对象的内存。 可以调用System.gc() 方法建议垃圾回收器来释放这些对象的内存,但不是命令 除非垃圾回收器认为你的 应用程序需要额外的内存,否则它不会试图释放不再使用的 对象的内存 不像C++析构函数会自动调用父类析构函数

Java的析构函数

C++的析构函数 形如“~A()”的成员函数,A为 类名 对象销毁时,系统自动调用 用于释放对象所占有的各种资 源

Example-1

对象的生命周期(C++) 作用域由{}定义。 全局对象:在main开始前被创建,main退出后被销毁。 局部静态对象 静态成员对象 局部对象:在进入作用域时被创建,在退出作用域时被销毁。 new创建:的对象会一直存在,即使指向该对象的指针已被销毁,容 易造成内存泄漏。(对象会一直存在直到程序退出时才会销毁,但不 是“优雅”地销毁) 需要显式调用delete并释放对象所占有的其他资源(析构函数)

对象的生命周期(C++) 静态成员对象 局部静态对象 局部对象 全局对象

成员函数的声明和定义