【文档说明】java语言基础(数据类型)课件.ppt,共(47)页,183.699 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-7165.html
以下为本文档部分文字说明:
1Part1注释、标识符、关键字、数据类型第3章JAVA语言基础2本章内容注释及分隔符、Java文档化工具标识符关键字Java基本数据类型Java引用类型值传递关键字this3Example:/***Description:Thisclassis*counts
toanumberdictatedby*theinputtotheprogram.*Copyright:Copyright(c)2007*Company:DalianUniversityofTechnology*@authorVivianZhao*@version1.1*/4Cont..publi
cclassCountingProgram{/***ThismethodcountsfromzerotoX,printing*the“count”tothescreen.*@paramcountNumberTheintnumberto
countto.*/publicstaticvoidcount(StringcountNumber){intcountTo=newInteger(countNumber);//forloop…for(inti=0;i<countTo;i++)System.out.println(“Co
unt=“+(i+1));}publicstaticvoidmain(Stringargs[]){if(args[0]==null)System.out.println(“shouldinputanumber");els
ecount(args[0]);}}5Java注释Java语言中定义了三种注释形式://单行注释----注释到行尾/*单行或多行注释*//**可以用于文档化处理的单行或多行注释*/JDK中提供了一个文档自动生成工具jav
adoc,在自定义类中public的成员前以/**…*/形式加入的注释内容均可被自动提取到生成的说明文档中。用法:somepath\javadocsource.java还可指定目录javadoc–dsomepathsource.java6常用的@
标记-javadoc标记Javadoc能识别标记@的一些特殊变量,并把注释加入它所生成的HTML文件:@version:版本信息@auther:作者@param:参数@return:返回说明@exception:异常说明举例:HelloDate.java7Java分
隔符Java分隔符组成:分号--“;”、花括号--“{}”、空格--“”Java分隔符作用:Java语句必须以分号作为结束标记Java允许用花括号“{}”将一组语句括起来,形成一个语句块(block)Java程序源代码中各组成部分之间可以插入任意数
量的空格,包括换行。8Java分隔符Java语句块(block)用法:定义类时类体必须采用语句块形式定义方法时方法体必须采用语句块的形式定义循环语句时,循环体可以语句块的形式,采用将0~多条语句集合到一起,作为
一个整体进行处理语句块可以嵌套,嵌套层数无限制9标识符(1)Java语言中,为各种变量、方法和类等起的名字称为标识符Java标识符的命名规则:应以字母、下划线、美元符开头后跟字母、下划线、美元符或数字Java标识符大小写敏感,长度无限制10标识符(
2)Java标识符举例合法的标识符不合法的标识符HelloWorldclassDataClassDataClass#_98398.3$bS5_c7HelloWorld11关键字(1)Java中一些赋以特定
的含义、并用做专门用途的单词称为关键字(keyword)所有Java关键字都是小写的,TURE、FALSE、NULL等都不是Java关键字goto和const虽然从未使用,但也作被为Java关键字保留12关键字(2
)13Java数据类型划分数据类型基本数据类型引用数据类型数值型字符型(char)布尔型(boolean)整数类型(byte,short,int,long)浮点类型(float,double)类(class)接口(interface)数组Java不支持C、C++中的指针类型、结构
体类型和共用类型14Java基本数据类型Java中定义了四类/八种基本数据类型逻辑型----boolean文本型----char整数型----byte,short,int,long浮点数型----float,doub
le15逻辑型boolean类型适于逻辑运算,一般用于程序流程控制boolean类型数据只允许取值true或false,不可以0或非0的整数替代true和false。用法举例:booleanb=f
alse;if(b==true){//dosomething}默认值:false16文本型(字符型)char型数据用来表示通常意义上“字符”字符常量是用单引号括起来的单个字符charc='A'
;Java字符采用Unicode编码,每个字符占两个字节charj=97;//j=‘a’unicode中的编码值Java语言中还允许使用转义字符'\'来将其后的字符转变为其它的含义charc2=‘\n’;//代表换行符默认值:‘\u0000’17整数类型(1)类型占用存储空间表数范围b
yte1字节-128~127short2字节-215~215-1int4字节-231~231-1long8字节-263~263-1Java各整数类型有固定的表数范围和字段长度,而不受具体操作系统的影响,以保证Java程序的可移植性:18整
数类型(2)Java语言整型常量的三种表示形式:十进制整数,如12,-314,0。八进制整数,要求以0开头,如012十六进制数,要求0x或0X开头,如0x12Java语言的整型常量默认为int型,如:inti=3;声明long型常量可以后加‘l’或‘L’,如:longl=3L
;19浮点型(1)Java浮点类型有固定的表数范围和字段长度类型占用存储空间表数范围float4字节-3.403E38~3.403E38double8字节-1.798E308~1.798E30820浮点型(2)Java浮点类型常量有两种表示形式十进制数形
式,必须含有小数点,例如:3.14314.0.314科学记数法形式,如3.14e23.14E2314E2Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F,如:doubled=3.14;floatf=3.14f;21基本数据类型变量声明和赋值pub
licclassTest{publicstaticvoidmain(Stringargs[]){booleanb=true;//声明boolean型变量并赋值intx,y=8;//声明int型变量floatf=4.5f;//声明float型变量并赋
值doubled=3.1415;//声明double型变量并赋值charc;//声明char型变量c=‘\u0041’;//为char型变量赋值(‘A’)x=12;//为int型变量赋值}}22EX1(课后练习)1.练习在一个已有.java源代码文件中使用三种不同类型的注释,并用javad
oc命令创建自己的类文档,体会其用法。2.练习在已有应用程序的一个语句中插入多处空格、中间换行、将多个语句组成一个语句块儿(置于“{}”中),并编译运行程序,体会其自由程度。3.在程序中试将不合法的标识符(如:3a
r,*bily,d9#8等)、或关键字作为变量名,编译然后改正错误。23Java引用类型Java语言中除8种基本数据类型以外的数据类型称为引用类型引用类型数据以对象的形式存在引用类型变量的值是某个对象的句柄,而不是对象本身声明引用类型变量时,系统只为该变量分配引用空间,
并未创建一个具体的对象24对象的构造和初始化(2)Java引用类型成员变量默认初始化原则成员变量类型取值byte0short0int0long0char'\u0000'float0.0Fdouble0.0Db
ooleanfalse所有引用类型null25Java引用类型应用举例publicclassMyDate{privateintday=12;privateintmonth=6;privateintyea
r=1900;publicMyDate(inty,intm,intd){year=y;month=m;day=d;}publicvoiddisplay(){System.out.println(year+"/
"+month+"/"+day);}publicstaticvoidmain(String[]args){MyDatem;m=newMyDate(2001,9,22);m.display();}}26对象的构造和初始
化(1)为引用类型变量分配引用空间MyDatem;创建新对象--首先为新对象分配内存空间,并进行属性(实例变量)的默认初始化newMyDate(22,9,2001);nullnullm000daymonthyearm27对象的构造和初始化(3)进行属性(
成员变量)的显式初始化,显式初始化取值来自于类的定义中属性声明部分privateintday=12;privateintmonth=6;privateintyear=1900;nullm1261900daymonthyear28对象的构造和初始化(4)
执行构造方法publicMydate(inty,intm,intd){year=y;month=m;day=d;}nullm2292001daymonthyear29对象的构造和初始化(5)为引用类型变量m赋值m=newMyDat
e(22,9,2001);0x3a478bm2292001daymonthyear0x3a478b30值传递Java中进行赋值操作或方法调用中传递参数时,遵循值传递的原则:基本类型数据传递的是该数据的值本身当向一个方法传递一个对象时,Ja
va没有把对象放入堆栈,它只是拷贝对象的引用然后将这个引用的拷贝放入堆栈。也就是说,根据定义,Java使用的是传值方式。31值传递举例(1)classBirthDate{privateintday;privateintmonth;privateintyear;publicBirthDa
te(intd,intm,inty){day=d;month=m;year=y;}publicvoidsetDay(intd){day=d;}publicvoidsetMonth(intm){month=m;}publicvoidsetYear(inty){yea
r=y;}publicintgetDay(){returnday;}publicintgetMonth(){returnmonth;}publicintgetYear(){returnyear;}publicvoiddisplay(){System.
out.println(day+"-"+month+"-"+year);}}32值传递举例(2)publicclassExample{publicstaticvoidmain(Stringargs[]){Exampleex=newExample();intdat
e=9;BirthDated1=newBirthDate(7,7,1970);BirthDated2=newBirthDate(1,1,2000);ex.change1(date);ex.change2
(d1);ex.change3(d2);System.out.println("date="+date);d1.display();d2.display();}publicvoidchange1(inti){i=1234;}p
ublicvoidchange2(BirthDateb){b=newBirthDate(22,2,2004);}publicvoidchange3(BirthDateb){b.setDay(22);}}33值传递演示(1)main程序开始执行时内
存状态栈内存堆内存publicclassExample{publicstaticvoidmain(Stringargs[]){Exampleex=newExample();intdate=9;BirthDated1=
newBirthDate(7,7,1970);BirthDated2=newBirthDate(1,1,2000);ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println("
date="+date);d1.display();d2.display();}publicvoidchange1(inti){i=1234;}publicvoidchange2(BirthDateb
){b=newBirthDate(22,2,2004);}publicvoidchange3(BirthDateb){b.setDay(22);}}34值传递演示(2)main栈内存堆内存publicclass
Example{publicstaticvoidmain(Stringargs[]){Exampleex=newExample();intdate=9;BirthDated1=newBirthDate(7,7,1970);BirthDated2=newBirthDate(1,1,2000)
;ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println("date="+date);d1.display();d2.display();}publicvoidch
ange1(inti){i=1234;}publicvoidchange2(BirthDateb){b=newBirthDate(22,2,2004);}publicvoidchange3(BirthDateb)
{b.setDay(22);}}处内存状态1109259587934exdated1354752d219707720001135值传递演示(3)main栈内存堆内存publicclassExample{publicstaticvoidm
ain(Stringargs[]){Exampleex=newExample();intdate=9;BirthDated1=newBirthDate(7,7,1970);BirthDated2=newBirthD
ate(1,1,2000);ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println("date="+date);d1.display();d2.display
();}publicvoidchange1(inti){i=1234;}publicvoidchange2(BirthDateb){b=newBirthDate(22,2,2004);}publicvoidchange3(BirthDateb){b.setDay(22);}}处内存状态110
9259587934exdated1354752d21970772000119ichange136值传递演示(4)main栈内存堆内存publicclassExample{publicstaticvoidmain(Stringarg
s[]){Exampleex=newExample();intdate=9;BirthDated1=newBirthDate(7,7,1970);BirthDated2=newBirthDate(1,1,2000);ex.
change1(date);ex.change2(d1);ex.change3(d2);System.out.println("date="+date);d1.display();d2.display();}publ
icvoidchange1(inti){i=1234;}publicvoidchange2(BirthDateb){b=newBirthDate(22,2,2004);}publicvoidchange3(BirthDateb){b.setDay(22)
;}}处内存状态1109259587934exdated1354752d21970772000111234ichange137值传递演示(5)main栈内存堆内存publicclassExample{publicstat
icvoidmain(Stringargs[]){Exampleex=newExample();intdate=9;BirthDated1=newBirthDate(7,7,1970);BirthDated2=newBirth
Date(1,1,2000);ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println("date="+date);d1.display();d2.display();}publicvoidchange1(inti){i
=1234;}publicvoidchange2(BirthDateb){b=newBirthDate(22,2,2004);}publicvoidchange3(BirthDateb){b.setDay(22);}}处内存状态1109259587934exdated1354752d219
707720001138值传递演示(6)main栈内存堆内存publicclassExample{publicstaticvoidmain(Stringargs[]){Exampleex=newExample();in
tdate=9;BirthDated1=newBirthDate(7,7,1970);BirthDated2=newBirthDate(1,1,2000);ex.change1(date);ex.change2(d1);ex.cha
nge3(d2);System.out.println("date="+date);d1.display();d2.display();}publicvoidchange1(inti){i=1234;}publicvoidchange2(BirthDateb
){b=newBirthDate(22,2,2004);}publicvoidchange3(BirthDateb){b.setDay(22);}}处内存状态1109259587934exdated1354752d219707720
0011587934bchange239值传递演示(7)main栈内存堆内存publicclassExample{publicstaticvoidmain(Stringargs[]){Exampleex=newExample();intdate=9;BirthDated1=newBirthDate
(7,7,1970);BirthDated2=newBirthDate(1,1,2000);ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println("date="
+date);d1.display();d2.display();}publicvoidchange1(inti){i=1234;}publicvoidchange2(BirthDateb){b=new
BirthDate(22,2,2004);}publicvoidchange3(BirthDateb){b.setDay(22);}}处内存状态1109259587934exdated1354752d2197077200011666888bchange2222
200440值传递演示(8)main栈内存堆内存publicclassExample{publicstaticvoidmain(Stringargs[]){Exampleex=newExample();intdate=9;BirthDated1=ne
wBirthDate(7,7,1970);BirthDated2=newBirthDate(1,1,2000);ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println("date="+date);d1.d
isplay();d2.display();}publicvoidchange1(inti){i=1234;}publicvoidchange2(BirthDateb){b=newBirthDate(22,2,2004);}publicvoidchange3(
BirthDateb){b.setDay(22);}}处内存状态1109259587934exdated1354752d219707720001141值传递演示(9)main栈内存堆内存publicclassExample{publ
icstaticvoidmain(Stringargs[]){Exampleex=newExample();intdate=9;BirthDated1=newBirthDate(7,7,1970);BirthDated2=newB
irthDate(1,1,2000);ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println("date="+date);d1.di
splay();d2.display();}publicvoidchange1(inti){i=1234;}publicvoidchange2(BirthDateb){b=newBirthDate(22,2,2004);}publicvoidchange3(BirthDateb){b.setDay
(22);}}处内存状态1109259587934exdated1354752d2197077200011354752bchange342值传递演示(10)main栈内存堆内存publicclassExample{publicstaticvoidmain
(Stringargs[]){Exampleex=newExample();intdate=9;BirthDated1=newBirthDate(7,7,1970);BirthDated2=newBirthDate(1,1,2000);
ex.change1(date);ex.change2(d1);ex.change3(d2);System.out.println("date="+date);d1.display();d2.display();}publicvoidchange1(inti)
{i=1234;}publicvoidchange2(BirthDateb){b=newBirthDate(22,2,2004);}publicvoidchange3(BirthDateb){b.setDay(22);}}处内存状态1109259587934exda
ted1354752d21970772000221354752bchange343值传递演示(11)main栈内存堆内存publicclassExample{publicstaticvoidmain(Stringargs[]){Exampleex=newExam
ple();intdate=9;BirthDated1=newBirthDate(7,7,1970);BirthDated2=newBirthDate(1,1,2000);ex.change1(date);ex.change2(d1);ex.c
hange3(d2);System.out.println("date="+date);d1.display();d2.display();}publicvoidchange1(inti){i=1234;}publicvoidchange2(Bi
rthDateb){b=newBirthDate(22,2,2004);}publicvoidchange3(BirthDateb){b.setDay(22);}}处内存状态1109259587934exdated1354752d2197077200022144关键字
this(1)Java中为解决变量的命名冲突和不确定性问题,引入关键字“this”代表其所在方法的当前对象。构造方法中指该方法所创建的新对象普通方法中指调用该方法的对象45关键字this(2)publicclassThisSample{p
rivateintyear;privateintmonth;privateintday;publicThisSample(intyear,intmonth,intday){this.year=year;this.month=month;thi
s.day=day;}publicvoidsetYear(intyear){this.year=year;}publicvoidsetMonth(intm){month=m;}publicvoidsetDay(in
td){day=d;}publicvoidsetting(){this.setYear(2001);this.setMonth(9);setDay(11);//同this.setDay(11);}}46EX2
(课后练习)1.练习值传递演示中的例程,Example.java,体会和巩固Java中值传递的思想。2.运行程序并分析流程,体会This的用法。publicclassTestMyDate{publicstaticvoidmain(String[]args){MyDate
m1=newMyDate(22,7,1964);MyDatem2=m1.copy(m1);m1.display();m2.display();}}//类MyDate的定义见下一页47EX2publicclassMyDate{priv
ateintyear,month,day;publicMyDate(){}publicMyDate(intyear,intmonth,intday){this.year=year;this.month=mo
nth;this.day=day;}publicvoidsetYear(intyear){this.year=year;}publicvoidsetMonth(intm){month=m;}publicvoidsetDay(intd){day=d;}publicvoidsetting(
){this.setYear(2001);this.setMonth(9);setDay(11);//同this.setDay(11);}publicMyDatecopy(MyDated){MyDatem=newMyDate();m.year=d.year;m.month=d.month;m.
day=d.day;returnm;}publicvoiddisplay(){System.out.println(day+"-"+month+"-"+year);}}