C/C++/Java 哪些值不是头等程序对象

Slides:



Advertisements
Similar presentations
牙刷十大創意行銷企劃 指導老師:簡南山老師 4A 劉家汶 4A 楊雅涵 4A 許晉嘉 4A 何怡蓁 4A 莊倖怡 0A20F144 王珮.
Advertisements

软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
面向对象程序设计 、. 第二章 面向对象的分析与设计 学习目标 1 确定系统中的对象 2 确定对象的属性及操作 3 测试对象的有效性 4 区分对象和类 5 了解面向对象的编程和过程化编程之间的区别 6 了解封装的主要好处 7 了解软件开发的主要步骤.
多元評量與 Greenfoot 簡介 南港高中高慧君. 演講大綱 多元評量 高中階段程式設計教學目標與困境 Greenfoot 快速入門 – 袋熊吃樹葉 – 沙灘螃蟹 Greenfoot 臺灣社群介紹 2.
第四章 类、对象和接口.
第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
项目7 面向对象高级.
项目6 通用堆栈.
第16章 代理模式 Website:
Java程序设计教程 第一讲 Java概述.
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
四資二甲 第三週作業 物件導向程式設計.
面向对象的程序设计(一).
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
企業政策作業-電影魔球分析 姓名:曾怡靜 班級:企三甲 學號:4A0F0094.
第二章 JAVA语言基础.
Ch07 介面與多重繼承 物件導向程式設計(II).
Ch08 巢狀類別 物件導向程式設計(II).
程式設計實作.
第5章 异常处理 王德俊 上海交通大学继续教育学院.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
2018/11/15 面向对象与多线程综合实验-GUI设计 教师:段鹏飞.
物件導向程式設計 (Object-Oriented rogramming)
淺談Visual C# 程式設計 國立台灣師大附中 李啟龍 Jason.
Java基础 JavaSE异常.
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第五章 继承、接口与范型.
程式設計實作.
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
Java语言程序设计 第五部分 Java异常处理.
面向对象程序设计 、.
Java程序设计 第9章 继承和多态.
Ch01 物件與類別複習 物件導向系統實務.
C#面向对象程序设计 $7 继承和多态性.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
第一次课后作业 1. C/C++/Java 哪些值不是头等程序对象 2. C/C++/Java 哪些机制采用的是动态束定
9.1 程式偵錯 9.2 捕捉例外 9.3 自行拋出例外 9.4 自定例外類別 9.5 多執行緒
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
第9讲 Java的继承与多态(一) 类的继承 子类的创建 方法覆盖.
2019/1/16 Java语言程序设计-类与对象 教师:段鹏飞.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
辅导课程八.
面向对象 程序设计语言基础 马骏
JAVA 编 程 技 术 主编 贾振华 2010年1月.
《JAVA程序设计》 语音答疑 辅导老师:高旻.
第二章 Java基本语法 讲师:复凡.
開發Java程式語言的工具 JDK.
第7章 异常处理.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第二章 基于CORBA的分布式平台 苗启广 计算机学院.
主编:钟元生 赵圣鲁.
第二章 Java语法基础.
第二章 Java基本语法 讲师:复凡.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
龍老師我不會Debug QQ.
第二章 Java基本语法 讲师:复凡.
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
辅导课程十二.
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
判斷(選擇性敘述) if if else else if 條件運算子.
第二章 Java基础语法 北京传智播客教育
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第二章 Java基本语法 讲师:复凡.
第6章 继承和多态 伍孝金
Summary
Presentation transcript:

C/C++/Java 哪些值不是头等程序对象 在程序语言学中把相当于数学对象的程序对象叫做头等对象,因为它们作为运算对象的权利未受到任何限制。程 序对象的权限具体说来是: 可作为操作数出现在表达式中求值。 可作为单独的存储实体。 可作为参数传递到过程或函数。 可作为函数返回值。 可以构成复杂的数据结构。 函数抽象(即函数名)不能作函数返回值。 数组元素(单个,如a[3])不是可存储体,也不能作为函数返回值。 变量引用(如&j)不能在表达式中求值。 类和结构体的抽象(类名)不是头等程序对象,但具体的实例是头等程序组对象。

C/C++/Java 哪些机制采用的是动态束定 动态束定又叫动态联编,是指联编在程序运行时动态地进行,根据当时的情况来确定调用哪个 同名函数。动态联编对成员函数的选择是基于对象的类型,针对不同的对象类型将做出不同的编译 结果。 C++ 继承 通过基类指针指向子类型的对象并调用虚函数来实现 Java 继承(普通类和抽象类)、接口 通过继承中超类对象引用变量引用子类对象来实现 通过接口类型变量引用实现接口的类的对象来实现 C 没有

C++ 动态束定 - 继承 class A { public: virtual void f() {cout<<"A"<<endl;} }; class B : public A{ virtual void f() {cout<<"B"<<endl;} void main(){ A* p = NULL; A a; B b; p = &a; p->f(); // A p = &b; p->f(); // B }

Java 动态束定 - 继承 class A { void f() { System.out.println(“This is A”); } class B extends A { System.out.println(“This is B”); class Main{ public static void main(String[] args) { A a = new A(); B b = new B(); a.f(); // This is A a=b; a.f(); // This is B }

Java 动态束定 – 接口 interface A { void f(); } class B implements A { public void f() { System.out.println(“This is B”); class C implements A { System.out.println(“This is C”); class Main { public static void main(String[] args) { A a; a= new B(); a.f(); // This is B a = new C(); a.f(); // This is C }

比较分析C/C++和Java的参数传递机制,以及它们各自的优缺点 按值传递:void f(int x) : f(var) 实参和形参各自占有独立的存储单元,调用时将实参的值拷贝给形参,在被调用的函数执行时,访问 的是形参单元,函数调用结束后形参所占据的存储空间就被系统收回了。 按地址传递: void f(int* x) : f(&var) 按指针传递,它将一个变量的地址传送给调用函数的形参,在函数中可以改变实参。 按引用传递:void f(int& x) : f(var) 通过引用进行参数传递,效果与传递指针一样,但不必申请额外的空间。形参相当于实参的别名, 改变形参的值实际就是改变实参的值。

比较分析C和Java的参数传递机制,以及它们各自的优缺点 按值传递基本数据类型 和C++一样,针对基本数据类型以及String。 按值传递复合数据类型(原理类似于C/C++的按地址传递) 主要是针对复合数据类型,它传递的是一个对象句柄的拷贝,在函数中可以改变变量的值。 优缺点: C/C++中的指针(按地址传递)可以毫无约束地操作内存中的东西,功能强大但危险。 对于基本数据类型,Java不能在函数中对基本数据类型进行修改操作,会增加不便;对于复合数据类型, Java只能传递对象的引用,在函数中会对对象产生影响。 而C/C++对于对于基本数据类型和复合数据类型,既可以传递引用,又可以传递对象的拷贝(按值传递), 更加灵活。