对象的属性变量的详述

上传人:新** 文档编号:580478543 上传时间:2024-08-29 格式:PPT 页数:41 大小:239.02KB
返回 下载 相关 举报
对象的属性变量的详述_第1页
第1页 / 共41页
对象的属性变量的详述_第2页
第2页 / 共41页
对象的属性变量的详述_第3页
第3页 / 共41页
对象的属性变量的详述_第4页
第4页 / 共41页
对象的属性变量的详述_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《对象的属性变量的详述》由会员分享,可在线阅读,更多相关《对象的属性变量的详述(41页珍藏版)》请在金锄头文库上搜索。

1、Chap 03对象的属性对象的属性 -变量详变量详述述 掌握掌握JavaJava中的基本数据类型中的基本数据类型掌握变量的声明和使用掌握变量的声明和使用掌握掌握JavaJava数组的定义和使用数组的定义和使用掌握对象的成员变量的赋值和使用掌握对象的成员变量的赋值和使用变量与基本数据类型变量与基本数据类型Java与与C一样,数据通过变量来存储和访问。变一样,数据通过变量来存储和访问。变量必须先声明再使用,格式如下:量必须先声明再使用,格式如下:变量的类型变量的类型 变量名称;变量名称;变量的类型变量的类型 变量名称变量名称1,变量名称变量名称2,;变量的类型变量的类型 变量名称变量名称 变量的值

2、;变量的值;Java语言里变量只声明而不赋初值,会自动赋默语言里变量只声明而不赋初值,会自动赋默认值。认值。Java中可以将声明放在代码中的任何地方,良好中可以将声明放在代码中的任何地方,良好的编程习惯提倡把变量的声明尽可能地靠近变量的编程习惯提倡把变量的声明尽可能地靠近变量第一次使用的地方。第一次使用的地方。 整型整型int常整型常整型 4字节字节int x = -100; byte字节型字节型 1字节字节byte a = 5; short 短整型短整型 2字节字节short m = 25; long长整型长整型 8字节字节long n = -2000000000L;整型相关说明整型相关说明

3、在在Java语言规定,直接写出的整数被认为是语言规定,直接写出的整数被认为是int类型;类型;如果需要描述一个如果需要描述一个byte类型的数据,通常要使用类型的数据,通常要使用强制类型转换,如强制类型转换,如 (byte)10如果要描述一个如果要描述一个short类型的数据,需要使用强类型的数据,需要使用强制类型转换,如制类型转换,如 (short)15要描述长整型的整数需要在数字后要加上字母要描述长整型的整数需要在数字后要加上字母L或或l,如,如6000000000L八进制的数以八进制的数以0开头开头,十六进制数以十六进制数以0x或或0X开头。开头。如如010表示八进制中的表示八进制中的8

4、,0x10表示十六进制中表示十六进制中的的16。Java中没有任何无符号中没有任何无符号unsigned类型。类型。实型实型关键字关键字名称名称存储需求存储需求 定义变量举例定义变量举例float单精度浮点型单精度浮点型4字节字节float x = 3.25f;double 双精度浮点型双精度浮点型8字节字节double y = 37.4;实型相关说明实型相关说明Java语言规定,直接写出的浮点数被认为是语言规定,直接写出的浮点数被认为是double类型。类型。也可以通过在数字后加上字母也可以通过在数字后加上字母D或或d来表明当前来表明当前数据是数据是double型的实数常量,如型的实数常量,

5、如37.4D,-3.69d等。等。要描述要描述float型的实数常量需要在数字后要加上型的实数常量需要在数字后要加上字母字母F或或f,如,如2.5F,0.7f都是单精度浮点类型数都是单精度浮点类型数据。据。float类型变量保留类型变量保留67位有效数字,位有效数字,double类类型变量保留型变量保留15位有效数字,实际精度取决于具位有效数字,实际精度取决于具体数值。体数值。字符型字符型Java语言中的字符采用语言中的字符采用UNICODE编码,一编码,一个字符在内存中占个字符在内存中占两个字节两个字节空间。这使得空间。这使得Java可以使用可以使用char类型描述更多种类的字符,类型描述更

6、多种类的字符,包括英文字母、标点符号、汉字、日文、韩包括英文字母、标点符号、汉字、日文、韩文等。文等。字符类型的数据必须用单引号括起来,一个字符类型的数据必须用单引号括起来,一个字符型的变量只能存放一个字符。如:字符型的变量只能存放一个字符。如:char ch1 = a, ch2 = *, ch3 = 好好;char类型的变量可以与整数类型的变量通用类型的变量可以与整数类型的变量通用字符型字符型Java中的字符型变量可以用来存储转义字符。中的字符型变量可以用来存储转义字符。转义字符转义字符名称名称n换行换行t制表位制表位r回车回车反斜线反斜线单引号单引号”双引号双引号布尔类型(逻辑型)布尔类型

7、(逻辑型)布尔类型用来描述真与假,关键字是布尔类型用来描述真与假,关键字是boolean每个每个boolean类型的变量在内存中占类型的变量在内存中占1个个字节的空间。字节的空间。boolean类型数据的常量有类型数据的常量有true和和false,boolean类型的变量只能存储这两个值之类型的变量只能存储这两个值之一,不能存储其它内容。一,不能存储其它内容。在在Java语言中逻辑数据不会转换成其它数语言中逻辑数据不会转换成其它数值类型的数据。值类型的数据。数据类型的转换数据类型的转换自动类型转换(隐式)自动类型转换(隐式)charcharbytebyteshortshortintintlo

8、nglongfloatfloatdoubledouble数据类型的转换数据类型的转换强制类型转换:将一个数据或表达式强强制类型转换:将一个数据或表达式强制转换成所需的更低类型,格式为:制转换成所需的更低类型,格式为:(类型名类型名) 要转换的数据要转换的数据 强制类型转换是得到一个中间变量,原强制类型转换是得到一个中间变量,原变量类型并不发生变化。变量类型并不发生变化。 boolean类型不能与任何数值类型进行类型不能与任何数值类型进行类型转换。类型转换。常量常量Java共有五种类型的常量。共有五种类型的常量。整型常量:整型常量:如如12, 12L浮点型常量:浮点型常量:如如12F, 12D,

9、 12.0E2D布尔型常量:布尔型常量:如如true, false字符型常量:字符型常量:如如a, 9字符串常量:字符串常量:如如“a”, ”Nice”, “你好你好”自定义常量用关键字自定义常量用关键字final来修饰,要在定义时来修饰,要在定义时赋值,常量定义之后就不能再改变它的值。赋值,常量定义之后就不能再改变它的值。final public char ch = #; 字符串类型字符串类型 Java提供了字符串类型提供了字符串类型String,实际上,实际上String是一个类,它不属于基本数据类是一个类,它不属于基本数据类型型,但字符串使用得实在太频繁了,所以但字符串使用得实在太频繁了

10、,所以Java提供了对它更方便的使用方式。提供了对它更方便的使用方式。字符串变量(确切说应该是对象,因为字符串变量(确切说应该是对象,因为String其实是一个类,但我们简单说为其实是一个类,但我们简单说为变量),可以像基本数据类型变量那样变量),可以像基本数据类型变量那样被赋值、访问。被赋值、访问。 算术运算符算术运算符+加法运算符,或正值运算符。加法运算符,或正值运算符。 如如3+5,+3- 减法运算符,或负值运算符。减法运算符,或负值运算符。 如如5-2,-3*乘法运算符。乘法运算符。 如如3*5/除法运算符。如除法运算符。如5/3%模运算符模运算符(求余运算符求余运算符),可对小数可对

11、小数操作操作。 如如7%4=3 8.5%3=2.5有关算术运算符的说明有关算术运算符的说明Java语言中运算符语言中运算符“+”可用来连接两个字可用来连接两个字符串。符串。 “Abc”+123的结果为的结果为”Abc123”整数相除结果取整。操作数有小数是结果整数相除结果取整。操作数有小数是结果为小数。为小数。Java语言里语言里“%”可对整数取模,也可对小可对整数取模,也可对小数取模。数取模。16.2%5值为值为1.2可对可对char类型数据运算,不能对类型数据运算,不能对boolean类型数据进行运算。类型数据进行运算。先(乘、除、取余),后(加、减)。先(乘、除、取余),后(加、减)。自

12、增自减运算符自增自减运算符+、- 使变量增使变量增1、减、减1 +i,i+相当于相当于i=i+1; -i,i-相当于相当于i=i-1;先执行先执行i=i+1,再使用再使用i先使用先使用i,再执行再执行i=i+1a = 3 ;b = -a;System.out.print (b +( a +) ;输出:输出:2 2 最后最后a的值变为的值变为3符号在前符号在前,先自增先自增(减减) 符号在后符号在后,后自增后自增(减减)/*a=a-1;b=a;a为为2,b为为2*/关系运算符关系运算符关系运算符的使用注意:关系运算符的使用注意:区分区分“=”与与“=”。a=1是比较变量是比较变量a的值是否等于的

13、值是否等于1,结果为逻辑值。,结果为逻辑值。 a=1是是将常量将常量1赋值给变量赋值给变量a。5=5的结果为的结果为true。关系运算符中关系运算符中=和和!=的优先级略低,混合的优先级略低,混合比较时其他关系运算符要先执行,后判断比较时其他关系运算符要先执行,后判断相等(相等(=)和不等()和不等(!=)。)。逻辑运算符逻辑运算符在混合运算时,逻辑非在混合运算时,逻辑非(!)的优先级别最的优先级别最高,逻辑与高,逻辑与(&)和逻辑或和逻辑或(|)的优先级的优先级别低于关系运算符的。别低于关系运算符的。利用利用&、|做逻辑或运算时,如果只计做逻辑或运算时,如果只计算运算符表达式左边的结果即可确

14、定与、算运算符表达式左边的结果即可确定与、或的结果,则右边的表达式将不会执行。或的结果,则右边的表达式将不会执行。赋值运算符赋值运算符 自右向左赋值,左边必须是变量,不能写常量自右向左赋值,左边必须是变量,不能写常量或表达式。或表达式。赋值运算符的优先级别低于其他运算符,在混赋值运算符的优先级别低于其他运算符,在混合使用时,先处理等号右边的复杂表达式,然合使用时,先处理等号右边的复杂表达式,然后把处理结果赋给左边的变量。后把处理结果赋给左边的变量。在使用运算符时,尽量使其右端表达式的类型在使用运算符时,尽量使其右端表达式的类型与其左端变量类型相一致,否则要进行类型转与其左端变量类型相一致,否则

15、要进行类型转换。换。允许进行连续赋值。允许进行连续赋值。复合的赋值运算符:复合的赋值运算符:+=、-=、/=、*=、%=,先运算后赋值,后面的表达式相当于有括号。先运算后赋值,后面的表达式相当于有括号。 条件运算符条件运算符 ?: 先判断表达式先判断表达式1,如果值为,如果值为true,则执行,则执行表达式表达式2,将其结果作为三目条件表达式,将其结果作为三目条件表达式的值;否则,将表达式的值;否则,将表达式3的结果作为三目的结果作为三目条件表达式的值。条件表达式的值。 条件运算符可简单替换双分支选择结构条件运算符可简单替换双分支选择结构语句。语句。数数 组组 的的 概概 念念Java中的数组

16、是一个复合数据类型中的数组是一个复合数据类型数组中的元素数组中的元素具有相同的类型具有相同的类型元素类型可以是基本数据类型元素类型可以是基本数据类型,类的对象类的对象,也可以是数组类型也可以是数组类型数组元素是数组元素是有序排列有序排列的的,使用下标来访问使用下标来访问数组有一个属性数组有一个属性length,表示表示数组的长度数组的长度数组必须经过数组必须经过声明声明,构造构造,赋初值赋初值三个步三个步骤以后才能使用骤以后才能使用(定义定义内存分配内存分配赋值赋值)一维数组的声明一维数组的声明声明一个一维数组的方式如下声明一个一维数组的方式如下:元素数据类型元素数据类型 数组名称数组名称;元

17、素数据类型元素数据类型 数组名称数组名称;注意注意:两种声明方式完全相同两种声明方式完全相同在在 里面什么都不能有里面什么都不能有声明一个数组并没有为数组元素分配内存,声明一个数组并没有为数组元素分配内存, 因此还不能使用它们。因此还不能使用它们。一维数组的创建一维数组的创建声明数组后,通过使用运算符声明数组后,通过使用运算符new为数组为数组分配内存空间,之后数组才能存储数据。分配内存空间,之后数组才能存储数据。格式:格式:数组名称数组名称= =new 元素数据类型元素数据类型 元素个数元素个数; /*声明整型数组声明整型数组intArray, 包含包含10个元素个元素*/ int intA

18、rray; intArray=new int10; /*声明单精度型数组声明单精度型数组floatArray,包含包含15个元素个元素*/ float floatArray = new float15;一维数组创建的注意一维数组创建的注意 一维数组在声明的时候一维数组在声明的时候,里面是什么里面是什么都不能有的都不能有的,但是在使用但是在使用new运算符进运算符进行创建的时候行创建的时候,必须指明数组的长度必须指明数组的长度,只只有这样系统才能知道应该给这个数组分有这样系统才能知道应该给这个数组分配多少内存。配多少内存。与与C语言不同,语言不同,Java允许在创建数组时允许在创建数组时使用整型

19、变量来指定数组元素的个数。使用整型变量来指定数组元素的个数。这位数组的使用带来了很大的灵活性。这位数组的使用带来了很大的灵活性。 一维数组的创建一维数组的创建声明整型数组声明整型数组a, 包含包含10个元素个元素 int a = new int10;a0 a1 a2 a3 a4 a5 a6 a7 a8 a9数组数组a10个内存空间,每个空间可存放一个整型数据个内存空间,每个空间可存放一个整型数据赋值符赋值符“=“此处此处实现让实现让a指向这指向这10个连续空间。个连续空间。一维数组的创建一维数组的创建声明单精度型数组声明单精度型数组b,包含包含5个元素个元素 int n = 5; float

20、b = new floatn;b0 b1 b2 b3 b4数组数组b5个内存空间,每个空间可存放一个单精度型数据个内存空间,每个空间可存放一个单精度型数据一维数组的初始化一维数组的初始化 Java中,用中,用new运算符构造一个数组时运算符构造一个数组时,系统系统就自动将这个数组初始化好了。即数组的各个就自动将这个数组初始化好了。即数组的各个元素都被赋了初始值。元素都被赋了初始值。如下如下: 数组元素的类型数组元素的类型初始值初始值对象引用对象引用null整型变量整型变量0浮点变量浮点变量0.0布尔变量布尔变量false字符变量字符变量u0000数组的静态初始化:数组的静态初始化:声明数组的同

21、时对数组进行初始化赋值。声明数组的同时对数组进行初始化赋值。char ch = a, b, c, d, n;将各个元素的初始值放在赋值号将各个元素的初始值放在赋值号=右边的右边的大括号大括号里面里面, ,各个值之间用逗号各个值之间用逗号,隔开隔开在赋值号在赋值号=的右边的右边没有没有new运算符运算符, ,也也不不说明数组的长度说明数组的长度, ,系统会根据初始值的个系统会根据初始值的个数数, ,自动计算数组的长度自动计算数组的长度一维数组的初始化一维数组的初始化通过赋值语句对数组进行初始化赋值。通过赋值语句对数组进行初始化赋值。一维数组的初始化一维数组的初始化 int num = new i

22、nt10; for( int i=0 ; i=10 ; i+ ) numi=i*10; String s = new String3; s0 = “I”; s1 = “love”; s2 = “China!”;类类型的数组在创建之后,还要记得在使用类类型的数组在创建之后,还要记得在使用前必须创建每个数组元素对象。前必须创建每个数组元素对象。一维数组的初始化一维数组的初始化 Student stu = new Student3; stu0 = new Student(); stu1 = new Student(); stu2 = new Student();利用利用length属性获得数组的长度

23、属性获得数组的长度使用点运算符使用点运算符.和和length属性可以得到数属性可以得到数组的长度。组的长度。格式:格式: 数组名称数组名称.lengthint intArray = new int20;int L = intArray.length; 则将数组的长度值则将数组的长度值2020赋值给了变量赋值给了变量L;L;一维数组的有关说明一维数组的有关说明数组的类型可以是复杂结构类型;数组的类型可以是复杂结构类型;数组名代表数组的首地址,数组间可相互数组名代表数组的首地址,数组间可相互直接赋值,表示数组共同指向同一地址。直接赋值,表示数组共同指向同一地址。int a=1,2,3,4,5 ,

24、b; b=a; /数组数组b指向和数组指向和数组a相同的地址相同的地址1 2345a0 a1 a2 a3 a4数组数组ab0 b1 b2 b3 b4数组数组b一维数组的有关说明一维数组的有关说明引用数组元素使用数组名加下标,下标引用数组元素使用数组名加下标,下标从从0开始。开始。对数组进行构造时,中括号里对数组进行构造时,中括号里可以使用可以使用带有整型数值的带有整型数值的变量变量。引用数组元素时下标不能超出范围。引用数组元素时下标不能超出范围。Java会自动对下标越界检查,编译时没会自动对下标越界检查,编译时没有提示,但运行产生错误。有提示,但运行产生错误。从命令行输入数据从命令行输入数据步

25、骤一:引入相关类。步骤一:引入相关类。import java.util.Scanner;步骤二:创建步骤二:创建Scanner类的一个对象。类的一个对象。Scanner reader = new Scanner(System.in);步骤三:使用步骤三:使用reader对象调用下列方法读对象调用下列方法读取用户输入的各种类型数据。取用户输入的各种类型数据。nextBoolean(); nextByte(); nextShort(); nextInt(); nextLong(); nextFloat(); nextDouble();从命令行输入数据从命令行输入数据import java.util

26、.*;class ReadDemo public static void main(String args) System.out.println(请输入若干个数,每输入一个数回车确认请输入若干个数,每输入一个数回车确认); System.out.println(最后输入数字最后输入数字0结束输入操作结束输入操作); Scanner reader = new Scanner(System.in); double sum = 0; int m = 0; double x = reader.nextDouble(); while(x!=0) m = m+1; sum = sum+x; x = re

27、ader.nextDouble(); System.out.println(m+个数的和为个数的和为+sum); System.out.println(m+个数的平均值为个数的平均值为+sum/m);对象的成员变量对象的成员变量成员变量用来描述对象的状态(属性);成员变量用来描述对象的状态(属性);成员变量可以根据需要使用任意类型,包成员变量可以根据需要使用任意类型,包括数组、类类型等;括数组、类类型等;class StudentString name;double score;class LinePoint p1,p2; class Pointdouble x,y;对象的成员变量对象的成员变

28、量复杂类型的成员变量要注意必须先创建复杂类型的成员变量要注意必须先创建,然后再使用。如数组、类类型。然后再使用。如数组、类类型。通常不允许通过对象直接操作成员变量,通常不允许通过对象直接操作成员变量,要在类的内部定义相应的方法对成员变量要在类的内部定义相应的方法对成员变量进行数据的存储或访问。进行数据的存储或访问。static修饰过的变量称为静态变量,静态变修饰过的变量称为静态变量,静态变量可以通过类名直接引用。相关内容将在量可以通过类名直接引用。相关内容将在第五部分具体介绍。第五部分具体介绍。对象的成员变量对象的成员变量可以在定义类的同时给成员变量赋初值。可以在定义类的同时给成员变量赋初值。

29、class Rectangleint width = 10;int height = 20; 相当于规定了使用该类时成员变量的默认相当于规定了使用该类时成员变量的默认值。如,使用上面的值。如,使用上面的Rectangle类创建对类创建对象,每个对象的长象,每个对象的长width和宽和宽height都默都默认为认为10、20。对象的成员变量对象的成员变量成员变量赋初值必须与成员变量的声明写成员变量赋初值必须与成员变量的声明写在同一条语句里,因为类的内部不允许直在同一条语句里,因为类的内部不允许直接出现执行语句。接出现执行语句。class Rectangleint width ;int heigh

30、t ;width = 10;height = 20; 小结小结基本数据类型:注意基本数据类型:注意long与与float类型数据类型数据要加字母后缀;要加字母后缀;boolean类型不能与数值类型不能与数值型数据相互转换;型数据相互转换;Java中的中的char类型占类型占2个字节,可保存单个汉字、日文等。个字节,可保存单个汉字、日文等。运算符:运算符:%可对实数进行取余的运算;可对实数进行取余的运算;+可可实现字符串连接功能。实现字符串连接功能。数组:声明后需要创建,然后才能使用。数组:声明后需要创建,然后才能使用。声明时声明时内不写数字,创建使用内不写数字,创建使用new来实来实现。可使用整型变量或表达式作为创建时现。可使用整型变量或表达式作为创建时元素个数值。元素个数值。小结小结类类型的数组在创建之后,还要记得在使类类型的数组在创建之后,还要记得在使用前必须创建每个数组元素对象。用前必须创建每个数组元素对象。对象的成员变量可以带指定的初值。对象的成员变量可以带指定的初值。对象的成员变量可以是基本数据类型,也对象的成员变量可以是基本数据类型,也可以是数组、类等复杂数据类型。在使用可以是数组、类等复杂数据类型。在使用时要按照所属类型注意语法要求。时要按照所属类型注意语法要求。

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

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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