java类的数据成员第3章.ppt
《java类的数据成员第3章.ppt》由会员分享,可在线阅读,更多相关《java类的数据成员第3章.ppt(194页珍藏版)》请在三一办公上搜索。
1、第3章类的数据成员,3.1 类的数据成员概述3.2 简单数据类型的使用方法3.3 简单数据类型的包装类3.4 字符串数据类型的使用方法3.5 数组数据类型的使用方法3.6 J2SDK帮助文档的使用3.7 Java标识符命名规范,第3章 类的数据成员学习目标 掌握标识符与关键字的概念;掌握简单数据类型byte、short、int、long、float、double、char和boolean等的使用方法;掌握简单数据类型对应的包装类的使用方法;掌握String类型及其常用的操作方法;掌握数组的声明与实例化,理解数组的一些高级操作;学会J2SDK帮助文档的使用方法;理解软件开发中Java语言各种标识
2、符的命名规则。,类是一种由用户定义的新型数据类型,与整型或实型数据相比,类是一种复杂的数据类型,所以也称为构造类型。一个类由表示对象状态的属性和对属性数据进行操作的方法组成,即类是数据成员与方法成员的封装体。本章介绍类的数据成员。,3.1 类的数据成员概述数据成员是一个类的核心内容。设计类的主要内容是设计数据成员,同类的对象之所以互不相同,是由于它们有不同的属性值(即数据)。,3.1.1 数据成员的定义格式类的数据成员也叫属性成员,或叫字段(field)。在设计类时,定义数据成员的简单格式为数据成员类型 数据成员名;例如 int sum;int math,english;/注意在程序设计实践中
3、,一般在一行只定义一个属性,数据成员还可在定义时进行赋值初始化,例如:int sum=0;注意:如果一个数据成员在定义时进行了赋值初始化,在执行构造函数时对该数据成员也进行了初始化,则该数据成员的值为执行构造函数时所赋的值。,3.1.2 数据成员的修饰符数据成员的类型前面还可以加修饰符,数据成员的修饰符可分为存取性修饰符和存在性修饰符两类。1)存取性修饰符:有publicprivateprotectedpackage2)存在性修饰符:有staticfinal,final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。final成员变量表示常量,只能被赋值一次
4、,赋值后值不再改变。final不能用于修饰构造方法。注意:被final修饰的数据成员在定义时,一定要同时赋初值,不能在程序的其他地方进行修改。否则会出现编译错误。如已有这样的声明“final float PI;”,然后在程序的其他地方有赋值语句PI=3.12,这是不允许的。final float PI=3.14f;(但可以初始化对象的时候再赋初值),public class Test3 final float PI;/PI空白/PI=3.14f;Test3()PI=3.14f;public static void main(String args)Test3 t=new Test3();Sys
5、tem.out.println(t.PI);,final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。一旦给final变量赋初值,值就不能再改变。final变量定义的时候,可以先声明,而不给初值,这种变量也称为final空白,但是无论什么情况,编译器都确保空白final在使用之前必须被初始化。但是,final空白在final关键字final的使用上提供了更大的灵活性,为此,一个类中的final数据成员就可以实现依对象而有所不同,却有保持其恒定不变的特征。,class Test private final String S=final实例变量S;private fina
6、l int A=100;public final int B=90;public static final int C=80;/可理解为“全局常量”,一旦给值就不可修改,并且通过类名可以访问。private static final int D=70;public final int E;/final空白,必须在初始化对象的时候赋初值 public Test(int x)E=x;,public static void main(String args)Test t=new Test(2);/t.B=91;/出错,final变量的值一旦给定就无法改变/t.C=81;/出错,final变量的值一旦
7、给定就无法改变 System.out.println(t.S);System.out.println(t.A);System.out.println(t.B);System.out.println(Test3.C);System.out.println(Test3.D);/System.out.println(Test3.E);/出错,因为E为final空白,依据不同对象值有所不同.且E不是静态的,不能用类名直接访问。System.out.println(t.E);Test t1=new Test(3);System.out.println(t1.E);/final空白变量E依据对象的不同而不
8、同 t1.test1();,public void test1()final int a;/final空白,在需要的时候才赋值 final int b=4;/局部常量-final用于局部变量的情形 a=3;System.out.println(a);System.out.println(b);,3.2 简单数据类型的使用方法数据是一个类的核心,类中定义的数据要有确定的数据类型。数据类型可以是简单类型(如整型、实型等),也可以是复杂类型(如类类型、字符串、数组等)。本节介绍简单数据类型。,3.2.1 简单数据类型简单数据类型在Java语言中也叫原始数据类型或基本数据类型。Java语言中定义了四类
9、(八种)基本数据类型:整型:byte、short、int和long 浮点型:double和float 字符型:char 逻辑型:boolean,每一种数据类型有该类型的常量与该类型的变量。每种数据类型只能进行一些确定的运算,如逻辑型只进行逻辑运算。注意:所有Java编程语言中的整数类型都是带符号的数。1.整型整型数据类型分为四种:byte、short、int和long。这些不同整型数据类型的意义在于它们所占用的内存空间大小不同,这也表明它们所能表示的数值范围不同。每种整型数据类型的取值范围如表3-1所示。,表3-1 整数类型数据,整数类型的数据可以使用十进制、八进制或十六进制表示,具体表示方法
10、如下:十进制:用非0开头的数值表示,如100和-50等;八进制:用0开头的数值表示,如017等;十六进制:用0 x或0X开头的数值表示,数字1015分别用字母“A、B、C、D、E和F表示”(也可以使用小写字母a f),如0 x41、0Xabc等。,问题:017=()100123=()100 x41=()100Xff=()10,注意1:Java缺省的整数常量类型为int类型。如果要表示long类型整数常量,则需要给整数加后缀L或l,表示为长整数。例如123456L,如果直接写为123456,则系统会认为是int类型数据。注意2:与其他语言(如C语言)不同,Java语言每种整数类型的长度(即占用的
11、字节数)在任何系统中都是一样的。这也是为了保证Java语言的跨平台性。,2.实型实数数据类型是带小数部分的数据类型,也叫浮点型。Java语言中包括两种浮点型数据:float:单精度实数,长度为4字节(即32位);double:双精度实数,长度为8字节(即64位)。实型数据还可以用科学计数法表示,如123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。如12.3e3,123E2,1.23e4,e-5,1.2E-3.5,注意1:Java缺省的浮点型常数为double型。如果要表示float型常量,则要给数据加后缀F或f。例如12.34f,若直接写为12.34,则系统认为是
12、双精度实数。在程序中,如果写float f=3.14;将产生编译错误。注意2:如果要表示double型,则要给数据加后缀D或d(由于系统默认的浮点型常数为double型,因此也可以不加后缀D或d),如-0.23453D,1.4E+30d。,3.逻辑型逻辑值有两种状态,即人们常说的“开”和“关”、“成立”和“不成立”、“是”和“否”等。在Java语言中,这样的值用boolean(布尔)类型来表示。其有两个值,即true和false,分别表示“真”和“假”。布尔型变量在程序中的使用方法举例说明如下:boolean aBooleanVar;/说明aBooleanVar为boolean型变量boole
13、an isStudent=false;/说明变量isStudent是boolean型,并赋以初值false注意:Java语言中不可将布尔类型看成整型值(这与C和C+语言不同)。,4.字符型字符型是用单引号括起来的一个字符,程序中使用char类型表示。占两个字节。正因为如此,字符型的数据在书写时,可用以u开头的4位十六进制数表示,范围从u0000到uFFFF。,具体一个字符型的量,在程序中可以用下面几种方式表示:(1)用Unicode码表示。如字符型变量letter的值为A,则可以写为char letter=u0041;(2)用ASCII码表示。对于字符型的量,由于大多数计算机系统使用ASCII
14、码表示,而Unicode码中包含了ASCII码,因此在Java程序中,为了简便,大多数程序员仍使用ASCII字符的书写习惯,如字符型变量letter的值为A,则可以写为char letter=A;它与上面用Unicode码书写的语句是等价的。,(3)用整数表示字符。因为字符型的量在计算机内本质上保存的是一个两个字节的整数,所以字符型变量的取值也可以使用整型常数(注意不能使用整型的变量),如字符型变量letter的值为A,则可以写为char ch=65;但要注意,下面的程序片段是错误的:int a=65;char ch=a;,如要正确编译,只有使用强制类型转换:int a=65;char ch=
15、(char)a;注意:在将一个整数赋给一个字符变量时,整数的取值范围要在065535之间(即两个字节可以表示的无符号数据范围)。如果超出这个范围,将产生编译错误。,(4)用转义字符。Java语言也允许用转义字符表示一些特殊的字符。之所以叫转义字符,是因为以反斜杠()开头,将其后的字符转变为另外的含义。如用字符变量Tab表示制表符,则可以写为char tab=t;/而不是字符t表3-2是几个常用的转义字符。,表3-2 常用的转义字符,5.数据类型转换在同一表达式中,有不同的数据类型要参与运算时,要进行数据类型转换。(1)自动类型转换。整型、实型、字符型数据可以混合运算,例如:float a=65
16、+a+23.23f;运算过程中,不同类型的数据会自动转换为同一种数据类型(如上面语句中的数都将转换为float类型),然后进行运算。自动转换的数据类型要兼容,并且转换后的数据类型比转换前的数据类型表示的数值范围大。自动转换按低级类型数据(指数据范围小、精度低)转换成高级类型数据(指数据范围大、精度高)的规则进行。转换规则如表3-3所示。,表3-3 转换规则,注意1:boolean类型量不能与其他类型量之间相互转换。注意2:byte和short类型的数据计算结果为int型。(2)强制类型转换。在两种情况下,需要使用强制类型转换:高级别数据类型要转换成低级别数据类型。为了提高运算结果的精度。如有程
17、序段:,int a=15;int b=7;float c=a/b;/运算结果为c=2.0float d=(float)a/b;/运算结果为c=2.142857强制类型转换的一般格式为:,(类型名)表达式如有程序段:int i=356;byte b;b=(byte)i;/强制转换后丢失一部分数据,使得b的值为100注意:使用强制类型转换可能会导致数值溢出或数据精度的下降,应尽量避免使用。,3.2.2 数据的运算符数据的运算符表示对数据要进行的运算方式。运算符按其要求的操作数个数分为:一元运算符:参加运算的操作数有一个;二元运算符:参加运算的操作数有两个;三元运算符:参加运算的操作数有三个。运算符
18、按其功能分为七类:算术运算符、关系运算符、逻辑运算符、位运算符、条件运算符、赋值运算符以及一些其他的运算符。,1.算术运算符 算术运算符用于对整型数和实型数进行运算,按其要求的操作数的个数分为一元运算符和二元运算符两类。(1)一元运算符(+、-)。一元运算符可以位于操作数的前面,如+x或-x,也可以位于操作数的后面,如x+、x-等。无论一元运算符位于操作数的前面或后面,操作数完成运算后,都把结果赋给操作数变量。注意:+x或x+整体参加表达式运算时,表达式的值是不一样的,这与C语言类似。,(2)二元运算符。二元运算符有+、-、*、/和%,如两个操作数都是整型,则结果为整型,否则为实型。注意1:%
19、运算符表示求整除的余数,它要求两边的操作数均为整型,结果也为整型。注意2:对于/运算,如果两个操作数是整数时,则结果也为整数,如17/5=3,5/12=0。如果操作数中有一个是实数,则运算结果为实数。,2.关系运算符 Java语言的关系运算符共有七种:=、!=、=和instanceof。关系运算符用于关系表达式中,一个关系表达式的结果类型为布尔型,即关系式成立为true,不成立为false。对象运算符instanceof用来判断一个对象是否属于某种类类型,如Hello instanceof String结果为true,表示Hello是一个字符串类型的量。注意1:除了整型数和实型数可以混合出现在
20、关系运算符两边外,在一个关系运算符两边的数据类型应保持一致。,注意2:因为一个实数在内存中只能用近似值来存储,所以应该避免将两个实数进行“=”比较。如下面的判断语句:if(23.12121f=23.121211f)System.out.print(23.12121=23.121211);读者可上机测试一下是否会输出“23.12121=23.121211”。,3.逻辑运算符逻辑运算符有六个,它们是:!(非)、&(与)、|(或)、(异或,即运算符两边的值相异时为true,相同时为false)、&(短路与)和|(短路或)。&又称为无条件与运算符,|又称为无条件或运算符。使用&和|运算符可以保证不管左
21、边的操作数是true还是false,总要计算右边操作数的值。例如:计算false&(1223)运算式的结果时,尽管从第1个操作数的值false就可以得出该表达式的结果为false,但系统还是要进行(1223)的运算。,运算符&和|可以提高逻辑运算的速度。例如,在计算(1234)&(ab)时,因为1234为false,所以可以直接得出表达式的结果为false,不再需要计算运算符&右边的ab。在计算124)|(3423)时,因为124为true,所以可以直接得出表达式的结果为true,不再需要计算运算符|右边的3423。因此在逻辑表达式中,应尽量使用&和|运算符,以提高运算速度。注意:逻辑运算符要
22、求操作数和结果值都是布尔型量。,4.赋值运算符赋值运算符用来把“=”右边表达式的值赋给左边的变量,即将右边表达式的值存放在变量名所表示的存储单元中,这样的语句又叫赋值语句。它的语法格式如下:变量名=表达式;复合赋值运算符有+=(加等于)、-=(减等于)、*=(乘等于)、/=(除等于)、%=(余数等于)等。注意:赋值号两边的数据类型不同时,如果将数据类型长度较短的量赋给数据类型长度较长的变量,则可以进行自动类型转换,否则要进行强制类型转换。例如:,byte MyByte=10;int MyInteger=-1;MyInterger=MyByte;MyByte=(byte)MyInteger;,5
23、.条件运算符 条件运算符是“?:”,它要求有三个操作数,其格式如下:?:第一个操作数必须是布尔表达式,其他两个操作数可以是数值型或布尔型表达式。条件运算符的含义是:当的值为真时,结果为的值,否则为的值。例如:,int a=12;int b=34;int max=(a b)?a:b;则程序运行后,max变量中存放a和b中较大的一个数。,6.位运算符 位运算是对操作数以二进制位为单位进行的运算,位运算的操作数和结果都是整型量。位运算有七个,它们是:、/1100 0011 c=3,7.其他运算符()和 运算符:括号运算符()的优先级是所有运算符中最高的,它可以改变表达式运算的先后顺序。在有些情况下,
24、它可以表示方法或函数的调用。括号运算符 是数组运算符(见3.5节)。运算符:用于访问对象的成员属性或成员方法。new运算符:用于创建一个新的对象。,8.运算符的优先级运算符的优先级由高到低的规律是:.()单目运算算术运算关系运算逻辑运算?:=详细情况见表3-4。,表3-4 运算符的优先级别,3.2.3【案例3-1】解方程1.案例描述设计表示一元一次方程(ax+b=0)的类,并能根据a的系数情况求解方程。2.案例效果案例程序的执行效果如图3-1所示。图中从第2行开始,输出了4个不同方程及其解的情况。,图3-1 案例3-1的显示效果,3.技术分析为了求解一元一次方程ax+b=0,要定义一个表示一元
25、一次方程的类,其数据是a和b,可以进行的操作是判断方程是否有解,如果有解,则求方程的解,并输出方程式和解的情况。根据以上分析,设计的表示一元一次方程的类应该有两个私有数据成员a和b(对于私有数据,一般应有设置器setXXX和读取器getXXX),有判断方程是否有解、求解和输出方程与解的方法成员。因此,该类的设计要点是:,class 方程 私有数据a;私有数据b;构造方法 a的设置器a的读取器 b的设置器b的读取器判断方程是否有解的方法求方程解的方法 输出方程与解的方法,4.程序解析下面是根据上面的分析设计的一元一次方程类Equation,程序中定义的TestEquation类对Equation
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 数据 成员
链接地址:https://www.31ppt.com/p-5011083.html