资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,2,章,Java,基础,李慧芬,B1-308,第2章 Java基础李慧芬,教学目标,了解面向对象的基本概念。,掌握,Java,类的定义方法。,熟练掌握,Java,语言中的数据类型。,掌握,Java,中各类运算符的使用方法。,掌握,Java,中表达式的基本原理及使用方法,教学目标了解面向对象的基本概念。,本章目录,2.1,面向对象的基本概念,2.2 Java,语言中类的定义,2.3,常量和变量,2.4,数据类型,2.5,运算符和表达式,2.6,本章小结,本章目录2.1 面向对象的基本概念,2.1,面向对象的基本,概念,面向对象,:一种程序设计方法和设计规范。,使用对象、类、继承、封装、消息等基本概念来进行程序设计。,Java,是完全面向对象编程语言,。,2.1 面向对象的基本概念面向对象:一种程序设计方法和设计规,1,、对象,现实,世界中,对象是状态,(,属性,),和行为的结合体。,程序设计中,,对象定义为,相关数据和方法的集合,。是现实世界对象的抽象模型,。,数据(变量):描述对象的属性。,方法(函数):实现对象的行为。,例如:,“银行账户”对象:,属性:账号、户名、密码、账户余额等,方法:存款、取款、查询余额、更改密码等,1、对象现实世界中,对象是状态(属性)和行为的结合体。,2,、类,类,:,对象的软件图纸、模板或原型。,定义了,同类,对象,共有,的变量和方法,。,Java,编程就是设计类,采用自定义或继承等方法设计一个类,然后使用它的实例对象完成具体的功能。,2、类类:,3,、继承和重用,继承(,inheritance,),:,由一个类定义另外一个类,。,子,类继承了父类的状态和行为,可添加新的变量和方法,。,例如:三角形,-,等腰三角形,-,等边三角形,继承使父类的代码得到,重用,,在继承父类提供的共同特性基础上添加新的代码,,提高,了编程效率。,Java,不支持多继承,子类只能有一个父类。,3、继承和重用继承(inheritance):由一个类定义另,4,、封装,封装(,encapsulation,):,将相关数据和方法放在一个包里。把类设计成一个黑箱,使用者只能,看见类中定义的公共方法,,而看不到方法实现的细节,也不能直接对类的数据进行,操作,,迫使用户,通过接口去访问数据,。,好处:,模块化、数据,隐藏。,4、封装封装(encapsulation):将相关数据和方法,5,、多态性,多态性:一般类中定义的属性或方法被特殊类继承后,可以具有不同数据类型或表现出不同的行为。,同一,属性、方法在一般类及其各个特殊类中具有不同的语义。,5、多态性多态性:一般类中定义的属性或方法被特殊类继承后,可,2.2 Java,语言中类的定义,类(,Class,):,对一个特定类型对象的描述,定义了一种新类型,是对象的定义。,属性:存储数据项的变量,方法:对类进行的操作,2.2 Java语言中类的定义类(Class):对一个特定类,银行,账户:,属性,:户名,账户号,密码,账户,余额,方法:登记信息,输出,信息,抽象,class,Cust,String,name;,int,ID;,String,PWD;,int,money;,void,initCust(String newName,int,newID,String newPWD,int,newMoney),name,=newName;,ID,=newID;,PWD,=newPWD;,money,=newMoney;,void,printCust(),System.,out,.println,(,户名:,+name);,System.,out,.println,(,账号:,+ID);,System.,out,.println,(,账户余额:,+money);,建立具体的银行账户(对象),账户(,Tom,):,户名,Tom,账户号,100,密码,111111,余额,10000,实例化,建立对象,public,class,CustDemo,public,static,void,main,(String args),Cust,myCust=,new,Cust();,myCust.initCust,(Tom,100,11111,10000);,myCust.printCust,();,银行账户:抽象class Cust 建立具体的银行账户(对,2.3,常量和变量,2.3.1,常量,常量,:数据在程序运行过程中值不发生改变。,常量用,final,声明,,不占用内存。,Java,约定常量名称用大写字母。,声明常量的格式:,final,类型 常量,名,=,值,;,例如:,final double PI=3.1415;,注意:,常量只能在定义时赋值,2.3 常量和变量2.3.1 常量 常量:数据在程序运行过,2.3.1,常量,类常量,:,可以在一个类中的多个方法中使用,使用关键字,static final,public,class,ConstantsExample2,public static final double,M=2.54;,public,static void,main(string args),double,width=8.5;,double,height=11;,System.out.println(“paper size in centimeters:”+width*M+”by”+height*M);,2.3.1 常量类常量:可以在一个类中的多个方法中使用 p,2.3.2,变量,变量,:,一个命名的内存块,用于存储,Java,程序中的信息。每个内存块只能存储一种类型的数据。,声明变量的,格式:,类型,变量名,变量名,=,初值,;,如:,int a,b=3;,变量,在,使用前,必须先定义,,定义时可赋初始值。,变量的值可以改变。,变量名的命名遵循标识符命名规则,,通常用,小写字母或,单词,,不能,与,Java,语言的关键字,相同。,在同一个作用范围内,不能有相同名字的两个变量。,2.3.2 变量变量:一个命名的内存块,用于存储Java程序,变量的作用域,变量都有特定的作用域。,在,类中声明,的变量称为,成员变量,,通常在类开始处声明,可在整个类中使用。,在,方法,中,声明的变量称为,局部变量,。在,该方法中,起作用。,变量的作用域变量都有特定的作用域。,例:变量的作用范围,public class,Test,static,int,i=10,;,/,成员变量,在整个类范围内起作用,public static void,main(String args),int k=10,;,/,局部,变量,只在方法内,起作用,System.out.println,(i=+i);,System.out.println,(k=+k);,void,printk(),System.out.println,(k=+k);,/,编译时将出错,,已超出,k,的使用范围,例:变量的作用范围 public class Test,2.3.3,标识符和关键字,1,、标识符,标识符命名的基本规则:,由字母、数字、下划线、美元符号组成,只能以,字母,、下划线或,美元符号,($),开头,注意:,标识符长度没有,限制,区分,大,小写,关键字不能作为用户标识符,Java,采用,Unicode,字符集,,16,位编码,可使用其他语言的字母作为标识符。如希腊字母、中文等,以下哪些是合法,的用户标识符,命名:,2teacher,、,studentName,、,Student_Name,room,#,、,abstract,、,_my_value,、,$,address,3a,、,int,、,my date,、,email,2.3.3 标识符和关键字1、标识符标识符命名的基本规则:,2.Java,关键字,Java,定义了,48,个保留关键字:,abstract,do,implements,package,synchronized,boolean,double,import,private,this,break,else,instanceof,protected,throw/,throws,byte,extends,int,public,transient,case,false,interface,return,true,catch,final,long,short,try,char,finally,native,static,void,class,float,new,strictfp,volatile,continue,for,main,super,while,default,if,null,switch,2.Java关键字Java定义了48个保留关键字:abstr,数据类型,基本数据类型,引用数据类型,数值型,字符型:,char,布尔型:,boolean,整型:,byte,short,int,long,实型:,float,double,类:,class,数组和字符串,接口:,interface,2.4,数据类型,数据类型基本数据类型引用数据类型数值型字符型:char布尔型,Java,的基本数据类型,数据类型,名称,位长,缺省值,取值范围,布尔型,boolean,1,false,true,false,(不能用,0,、,1,表示),字节型,byte,8,0,128,127,字符型,char,16,u0000,u0000,uffff,短整型,short,16,0,32768,32767,整型,int,32,0,2,147,483,648,2,147,483,647,长整型,long,64,0,9,223,372,036,854,775,808,9,223,372,036,854,775,807,浮点型,float,32,0.0,-2,-149,(2-2,-23,)2,127,双精度型,double,64,0.0,-2,-1074,(2-2,-52,)2,1023,字符串类型:,使用,String,关键字定义,用一对双引号括起来的字符序列,。,如:,String name=“Jack”,;,Java的基本数据类型数据类型名称位长缺省值取值范围布尔型b,练习:,定义一常量,PI,并赋值为,3.14,定义一整型变量,并赋值为,100,定义一字符型变量,并赋值为,a,定义一个单精度型变量,并赋值为,2.5,定义一个字符串类型变量,并赋值为,Java,练习:定义一常量PI并赋值为3.14,2.4.2,各类型数据间的相互转换,1,、自动类型转换,整型、浮点型、字符型数据可以混合运算。,在进行运算时,,低级数据,要先转换成,同高级数据,进行自动类型转换。,2.4.2 各类型数据间的相互转换1、自动类型转换整型、浮,public,class AutotypePromot,public,static void main(String args),char,c=h;,byte,b=5;,int,i=65,;,long,a=465L;,float,f=5.65f;,double,d=3.234;,int,ii=c+i;,/char,类型变量,c,自动转换,为,int,类型参加运算,long,aa=a-ii;,/int,类型变量,ii,自动,转换为,long,类型参加运算,float,ff=b*f;,/byte,类型变量,b,自动转换,为,float,类型参加运算,double,dd=ff/ii+d;,/int,类型的变量,ii,自动转换,为,float,类型,/ff/ii,计算结果为,float,类型,然后再转换,为,double,类型,System.out.println,(ii=+ii);,System.out.println,(aa=+aa);,System.out.println,(ff=+ff);,System.out.println,(dd=+dd);
展开阅读全文