第2章 标识符和数据类型.

Slides:



Advertisements
Similar presentations
面向侧面的程序设计 方林博士 本文下载地址:
Advertisements

第四章 类、对象和接口.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第一單元 建立java 程式.
Tool Command Language --11级ACM班 金天行.
第一章 C语言概述 计算机公共教学部.
面向对象的程序设计(一).
南京理工大学 第2章 Java基本语法 本章我们将学习Java编程语言的基本语法,包括变量、操作符、表达式、语句、字符串、数组、控制流以及如何使用帮助文档。 使用下面的编程框架: public class Test{ public static void main(String []args){ //以下添加测试代码.
第二章 JAVA语言基础.
第14章 c++中的代码重用.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
第10讲 Java面向对象编程基础(4) 教学目标 主要内容.
第六章 JAVA语言中的面向对象特性 6.1 类 6.2 对象 6.3 面向对象的特性 6.4 抽象类、接口和Inner Class.
第三章 控制结构.
程式設計實作.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
Signutil.
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
本單元介紹何謂變數,及說明變數的宣告方式。
程式設計實作.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
管理信息结构SMI.
辅导课程六.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
第二章 Java语言基础.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
Java程序设计 第2章 基本数据类型及操作.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
第一單元 建立java 程式.
第三章 C# 基础知识.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
第二章Java基本程序设计.
第三课 标识符、关键字、数据类型.
$9 泛型基础.
Java變數 2014/6/24.
C#面向对象程序设计 $6 深入理解类.
第二章 Java基本语法 讲师:复凡.
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
本节内容 类成员的访问控制 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
第九节 赋值运算符和赋值表达式.
本节内容 结构体 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Review 1~3.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
辅导课程十五.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
基本知识 数据类型、变量、常量、运算符.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
變數、資料型態、運算子.
第2章 Java语言基础.
第二章 数据类型与表达式 丘志杰 电子科技大学 计算机学院 软件学院.
第二章 Java基础语法 北京传智播客教育
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第2章 Java语言基础.
2 Java语言基础 (数据运算与流程控制).
第二章 简单数据类型 §2.1 数据类型概述 §2.2 变量和常量 §2.3 简单数据类型 §2.4 简单数据类型的相互转换
Summary
Presentation transcript:

第2章 标识符和数据类型

本章主要内容: Java的基本语法单位 1 Java编码体例 2 Java的基本数据类型 3 复合数据类型 4 类和对象的初步介绍 5

引言:Java程序的结构 package语句:可以没有,或可以有一个,但必须放在文件开始的地方 import语句:可以没有,或可以有多个,如果有import语句的话,必须放在所有类定义之前 public型的类定义:每个文件中最多有一个 类定义:每个文件中包含的类定义的个数没有限制 接口定义:每个文件中包含的接口定义个数没有限制

2.1.1 空白、注释及语句 1.空白 2.1 Java的基本语法单位 换行符及回车键、空格键、水平定位键(tab)都是空白。 程序中除了加入适当的空白外,还应使用缩进格式,使得同一层语句的起始列位置相同

一种不好的风格 class Point {int x,y;Point(int x1,int y1) {x=x1; y=y1; } ){this(0,0);} void moveto(int x1,int y1){ x=x1;y=y1; }}

提倡的程序风格 class Point { int x, y; // 点的x轴、y轴坐标 Point(int x1, int y1) { // 构造方法 x = x1; y = y1; } Point(){ // 构造方法 this( 0, 0); void moveto(int x1, int y1){ // 点移动到(x1, y1)

2. 注释 程序中适当地加入注释,会增加程序的可读性 程序中允许加空白的地方就可以写注释。注释不影响程序的执行结果,编译器将忽略注释 Java中的三种注释形式: // 在一行的注释 /* 一行或多行的注释 */ /** 文档注释 */

Java各语句间以分号“;”分隔。一个语句可写在连续的若干行内 3. 语句、分号和块 Java中的语句是最小的执行单位 Java各语句间以分号“;”分隔。一个语句可写在连续的若干行内 花括号“{”和“}”包含的一系列语句称为语句块,简称为块 语句块可以嵌套 即语句块中可以含有子语句块。在词法上,块被当作一个语句看待

2.1.2 Java关键字 abstract boolean break byte case catch char class const continue do double else extends false finally cast default final float for future generic goto if implements import inner instanceof int interface long native new null operator outer package private protected public rest return short static super switch synchronized this throw throws transient true try var void volatile while

2.1.3 标识符 标识符是以字母、下划线(_)或美元符($)开头,由字母、数字、下划线(_)或美元符($)组成的字符串 标识符区分大小写,长度没有限制 标识符中不能含有其它符号,包括空格 标识符可用作变量名、方法名、接口名、类名等 注意:JAVA 源码使用的是Unicode码,而不是ASCII码。

标识符例 合法的标识符 非法标识符 Identifier username User_name _sys_var1 $change sizeof 2Sun // 以数字2开头 class // 是Java的关键字,有特殊含义 #myname // 含有其他符号#

Java中的一些命名约定 : 2.2 Java编码体制 类 类名应为名词,含有大小写,每个字的首字母大写 类 类名应为名词,含有大小写,每个字的首字母大写 接口 接口是一种特殊的类,接口名的命名约定与类名相同 方法 方法名应是动词,含有大小写,首字母小写,其余各字的首字母大写,尽量不要在方法名中使用下划线 常量 简单类型常量的名字应该全部为大写字母,字与字之间用下划线分隔,对象常量可使用混合大小写 变量 所有的实例变量、类变量和全局变量都使用混合大小写,首字符为小写,后面的字首用大写,作为字间的分隔符。变量名中不要使用下划线

2.3 Java的基本数据类型 数值类型 基本数据类型 字符类型:char 布尔类型:boolean 数据类型 类类型 复合数据类型 数组类型 接口类型:interface 字符类型:char 数值类型 浮点数类型:float,double 整数类型:byte,short,int,long

2.3.1 基本数据类型 逻辑类型—boolean 字符类型——char 有两个状态:表示成on/off 或 yes/no,其常量值用true/false表示 在计算机内部用一个字节(8位)来表示 不允许与数值类型之间进行转换 字符类型——char 表示单个字符,常量值用单引号‘ ’括起来 采用Unicode编码,其值用2字节(16位)无符号整数表示,范围为0—65535

2.3.1 基本数据类型 整型——byte, short, int 和 long 常量可用十进制、八进制、十六进制表示,以0开头为八进制,0x开头为十六进制,正常为十进制 整型常量是int型的,在数值后加“L”表示是long型 所有的整型量都是有符号数

2.3.1 基本数据类型 浮点型——float 和 double 单精度浮点数用float 表示,占4字节,表示范围为1.4e-45 ~3.4e+38 双精度浮点数用double 表示,占8字节, 表示范围为4.9e-324 ~1.8e+308 浮点类型都是有符号数 浮点常量都是double类型,除非在数值后加字母“ f ” 来说明它

2.3.2 类型转换 由低到高的转换可自动进行。各类型所占位数从短到长依次为: byte short char int long float double 不同类型数据的转换规则 操作数1类型 操作数2类型 转换后的类型 byte或short int byte或short或int long byte或short或int或long float byte或short或int或long或 float double char

2.3.2 类型转换 当位数多的类型向位数少的类型进行转换时,需要用户明确指明,即进行强制类型转换 一般地,高级类型(即位数较多的数据类型)转为低级类型(即位数较少的数据类型)时,截断高位内容,因此可能会导致精度下降或数据溢出 int i = 3; byte b = (byte) i;

程序2-3为每种基本类型定义了一个变量,并为其赋值 2.3.3 变量、说明和赋值 程序2-2 变量的说明和赋值 程序2-3为每种基本类型定义了一个变量,并为其赋值

2.4 复合数据类型 早期的程序设计语言把变量看作是孤立的东西 int day, month, year; 如果我们在一个程序中需处理日期,则往往说明三个独立的整数分别代表日、月、年。如下所示: int day, month, year;

这种方法的不足: 2.4 复合数据类型 如果程序需要处理多个日期,则需要更多的说明。例如要保存两个生日,需如下说明: 因使用了多个变量而变得混乱,容易出错。同时,又占用了过多的命名空间。更重要的是每个值都是独立的变量 int myBirthDay,myBirthMonth,myBirthYear; int yourBirthday,yourBirthMonth,yourBirthYear;

有两种办法来解决这个问题: 2.4 复合数据类型 提供日期类型,并为这个类型定义相应的函数,通过调用这些函数就可以得到所需要的结果 定义复合数据类型。复合数据类型为我们提供了更强大的类型定义工具,设计程序时也更加灵活

2.4 复合数据类型 定义:用户定义的新类型为复合数据类型 在有些语言中,复合数据类型又称作结构类型或记录类型。复合数据类型由程序员在源程序中定义,一旦有了定义,该类型就象其他类型一样使用

2.4 复合数据类型 对于新定义的复合数据类型,因系统不知道它的具体内容,要由程序员指定其详细的存储结构,这里存储空间的大小不是以字节来衡量,也不是位,而是按已知的其他类型来考虑 Java是面向对象的程序设计语言,它为用户提供的复合数据类型就是我们在前面提到的复合数据类型,即类、接口和数组

2.5 类和对象的初步介绍 2.5.1 java中的面向对象技术 1. 为什么使用面向对象技术 面向过程的设计方式使用的众多变量名、函数名互不约束,令程序员不堪重负 面向过程方法设计的程序把处理的主体与处理的方法分开,因此各种成分错综复杂地放在一起,难以理解,易出错,并且难于调试

1.为什么使用面向对象技术 随着开发系统的不断扩大,面向过程的方法越来越不能满足使用者的要求 OOP技术使得程序结构简单,相互协作容易,更重要的是程序的重用性大大提高了 面向对象的方法学,就是使分析、设计和实现一个系统的方法尽可能地接近我们认识一个系统的方法 面向对象技术主要包含这样几个概念:对象、抽象数据类型、类、类型层次(子类)、继承性、多态性

1.为什么使用面向对象技术 面向对象的方法学包括以下三方面: 面向对象的分析(OOA, Object-Oriented Analysis) 面向对象的设计(OOD, Object-Oriented Design) 面向对象的程序设计(OOP, Object-Oriented Program)

2. 什么是OOP OOP技术把问题看成是相互作用的事物的集合,用属性来描述事物的性质,而它的操作定义为方法。 OOP将现实生活中的事物经过抽象,映射为程序中的对象。对象在程序中是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(Class) OOP中采用了三大技术: 封装、继承和多态

类、公有、私有、保护成员、静态成员、构造函数、析构函数、虚函数、虚基类、this 3.Java的OOP能力 Java与C++ 的OOP能力比较 C++ 多重继承 Java 接口、包、final、super 类、公有、私有、保护成员、静态成员、构造函数、析构函数、虚函数、虚基类、this C++独特的 Java独特的 共有的部分

2.5.2 Java中的类定义 1. Java中类定义的一般格式为: 修饰符 class 类名 [extends 父类名]{ 类型 成员变量1; 类型 成员变量2; ...... 修饰符 类型 成员方法1(参数列表){ 类型 局部变量; 方法体 } 修饰符 类型 成员方法2(参数列表){

例2-7 一辆轿车的类定义 Class Car{ int color_number; int door_number; int speed; void brake() {…} void speedUp() {…} void slowDown() {…} }

2. 类定义的几点说明 Java中的类定义与实现是放在一起保存的,整个 类必须在一个文件中,因此有时源文件会很大 Java源文件名必须根据文件中的公有类名来定义,并且要区分大小写 类定义中可以指明父类,也可以不指明。若没有指明从哪个类派生而来,则表明是从缺省的父类Object派生而来。 Object是Java中所有类的父类。Java中除Object之外的所有类均有一个且只有一个父类。Object是唯一没有父类的类 class定义的大括号之后没有分隔符 “;”

protected:被同一包及其子类访问 friendly:默认,被同一包的类访问 2.5.3 与OOP有关的关键字 1.限定访问权限的修饰符 public:被所有类访问 private:仅被类本身访问 protected:被同一包及其子类访问 friendly:默认,被同一包的类访问

2.存储方式修饰词 Static既可修饰数据,也可修饰方法,表明成员是静态的。 静态成员可被类的所有对象共享。 公有静态变量相当于全局变量

继承指子类共享超类的属性和方法。 与继承有关的关键字有: 3.与继承有关的关键字 final:表示不能再派生子类 abstract:表示被修饰成分是抽象的 抽象方法只有原型说明,方法体是空的 含抽象方法的类必须是抽象类 抽象类一定要派生子类

4.This 和super This 指代本类 Super指代父类

2.5.4 类定义示例 例2-12 定义平面中的一个二维点Point class Point{ int x,y; Point(int x1,int y1){ x=x1; y=y1; } Point(){ this(0,0); void moveTo(int x1,int y1){

2.5.5 创建一个对象 1.对象引用 格式如下: 类名 变量名 如:Point p; 类名 变量名 如:Point p; 注意:申明变量时,只在内存中建立一个引用,并置初值为null,即不指向任何内存空间。 2.对象实例化 变量名=new 类名(参数列表) 如:p=new Point(1,1) 注意: 实例化的过程是为对象分配内存 可以把引用看作指针,它指向该实例的内存首地址 当对象作函数参数时,它传递的是对象引用

3.对象的使用 使用对象的格式如下: 例:在前例的基础上使用对象: p.x=10; p.y=20; p.moveTo(30,30); 对象引用.成员数据 对象引用.成员方法(参数列表) 例:在前例的基础上使用对象: p.x=10; p.y=20; p.moveTo(30,30);

Java把说明为class类型的变量看作是引用 因此,s,t指向同一个对象 2.5.6 引用变量的赋值 例2-15 引用变量的赋值 int x=7; int y=x; String s=“Hello”; String t=s; Java把说明为class类型的变量看作是引用 因此,s,t指向同一个对象

2.5.7 自动初始化 当执行new时,系统自动初始化成员变量,数值赋0,布尔变量赋false,对象变量赋null。 方法内的变量不能进行初始化,需要显式地进行赋值。

作业:2.3, 2.4, 2.5, 2.7,2.9