Java语言基础软件学院JAVA目录CONTENT基本语法及程序结构01数组的定义及使用02类和对象访问控制符MAKINGPROCESS03构造方法继承static关键字PRODUCTSHOW04包抽象类接口内部类BACKGROUND05MAKINGPROCESSMAKINGPROCESS基本语法及程序结构01标识符1.1标识符Java编程语言定义了8种基本数据类型整数——byte、short、int和long浮点——double和float布尔——boolean字符——char运算符与表达式逻辑运算符字符串连接运算符字符串运算符点运算符对象运算符为变量、类或方法等起的一个名称以字母、下划线或$符号开头由字母、下划线、$符号和数字组成区分大小写,没有最大长度限制,不能使用关键字示例:identifier、userName、user_name、_sys_varl、$change、程序名基本数据类型基本数据类型1.2运算符与表达式1.3(1)整数类型——byte(8位)、short(16位)、int(32位)和long(64位)三种形式使用——十进制、八进制或十六进制2十进制整数2077以0开头表示八进制值0xBAAC以0x开头表示十六进制值默认是int类型使用字母L或l定义long类型(2)浮点类型——float(32位)和double(64位)浮点数包括:E或e(加指数值)——科学计数法形式F或f(float)D或d(double)如:3.14一个简单的浮点值(一个double类型)6.02E23一个大浮点值2.718F一个简单的float值123.4E+306D一个带有D(多余)的大的double值默认类型是double(4)字符类型——char与Stringchar代表16位的Unicode字符字符必须在单引号(‘’)内使用:‘a’字母a‘\t’制表符‘\u????’特定的Unicode字符,????代表四位十六进制数charch=‘A’;//声明并初始化一个char变量charch1,ch2;//声明两个char变量(3)布尔类型——booleanboolean数据类型有两个值:true和false例如:语句booleantruth=true;声明变量truth为boolean类型,并将其赋值为true。注意:不能写为booleantruth=1;基本数据类型1.2String不是基本数据类型,而是一个类字符在双引号(“”)内“Hello,World!”使用如下:Stringstr1,str2;//声明两个String变量Stringgreeting=“GoodMorning!!\n”;StringerrorMessage=“RecordNotFound!”;//声明两个String变量并且初始化它们运算符与表达式1.3(1)逻辑运算符0值不能自动解释为false,非0值不能自动解释为true。如:inti=1;if(i)//generatesacompileerrorif(i!=0)//correct短路逻辑操作符MyDated;if((d!=null)&&(d.day31)){//dosomethingwithd}当第一个子表达式(d!=null)为假时,第二个子表达式就被跳过,全部表达式总是假的。同样,使用||操作符,如果第一个表达式返回为真,则不必计算第二个表达式,因为整个表达式必定为真。(2)字符串连接运算符+操作符执行String连接产生新的String一个参数必须是String对象非字符串对象会自动转换为String对象,如要转换为等价的字符串时,使用toString()成员方法(3)字符串运算符Stringfirst=“James”,last=“Gosling”;Stringname=first+last;结果:name的值是JamesGosling(4)点运算符“点”符号:对象.成员用于访问对象成员,包括属性和方法点的操作可使您访问类的非私有属性和方法在方法的定义内,访问本地成员不需要使用点符号(5)对象运算符AinstanceofB用来判定对象A是否为类B的对象数组的定义及使用SUMMERY02一维数组的声明数组的类型声明基本类型数组:chars[];char[]s;声明类类型数组:Pointp[];//Point是java.awt中的一个类Point[]p;数组的定义及使用02数组一般用来组合相同类型的对象。数组允许通过公共的名称来引用该组对象。数组声明创建一个引用,用它可以引用一个数组声明格式1)变量名后加方括号,如:intx[];Stringx[];2)类型后加方括号,如:int[]x;String[]x;声明不指定数组的实际大小。使用new关键字创建数组。数组的创建是为数组指定元素的个数,并为数组的元素分配存储空间使用new为数组分配空间选数组的定义及使用02创建基本类型数组例如,创建一个基本(char)类型数组:publicchar[]createArray(){char[]s;s=newchar[26];for(inti=0;i26;i++){s[i]=(char)(‘A’+i);}returns;}例如,创建一个基本(char)类型数组:publicchar[]createArray(){char[]s=newchar[26];for(inti=0;i26;i++){s[i]=(char)(‘A’+i);}returns;}创建对象数组创建一个基本(char)类型数组:publicchar[]createArray(){char[]s=newchar[26];for(inti=0;i26;i++){s[i]=(char)(‘A’+i);}returns;}创建对象数组另一示例,创建一个对象数组:publicPoint[]createArray(){Point[]p;p=newPoint[10];for(inti=0;i10;i++){p[i]=newPoint(i,i+1);}returnp;}创建一个对象数组:publicPoint[]createArray(){Point[]p=newPoint[10];for(inti=0;i10;i++){p[i]=newPoint(i,i+1);}returnp;}s1fb8ee3‘’‘’‘’‘’‘’ABCDE选数组的定义及使用02point数组示意图Point[]...PointXY01PointXY12PointXY23堆内存p61de33初始化数组整型数组写法一(动态初始化):intintArray[];intArray=newint[5];此时数组元素均为默认值0,可以逐个赋值:intArray[0]=1;intArray[1]=2;intArray[2]=3;写法二(静态初始化):intintArray[]=newint[]{1,2,3};或intintArray[]={1,2,3};省略了指定数组大小,此时数组的大小由大括号中值的个数决定,这种方式需指定数组中各个元素的值。初始化数组对象数组写法一(动态初始化):PointPArray[];PArray=newPoint[3];此时数组元素的值为默认值null,可逐个赋值:PArray[0]=newPoint(0,1);PArray[1]=newPoint(1,2);PArray[2]=newPoint(2,3);写法二(静态初始化):PointPArray[]=newPoint[]{newPoint(0,1),newPoint(1,2),newPoint(2,3)};或PointPArray[]={newPoint(0,1),newPoint(1,2),newPoint(2,3)};数组的定义及使用02初始化数组字符串数组写法一(动态初始化):Stringnames[];names=newString[3];逐个赋值:names[0]=“How”;names[1]=“are”;names[2]=“you”;写法一(动态初始化):Stringnames[];names=newString[3];names[0]=newString(“How”);names[1]=newString(“are”);names[2]=newString(“you”);写法二(静态初始化):1.Stringnames[]=newString[]{“How”,”are”,”you”};2.Stringnames[]={“How”,”are”,”you”};3.Stringnames[]={newString(“How”),newString(“are”),newString(“you”)};数组长度length在Java编程语言中,所有数组的索引均从0开始。数组的元素数作为数组对象的一部分存储在length属性中。如果发生边界溢出访问,那么就将引发运行时异常使用length属性对数组作如下循环:intlist[]={1,2,3};for(inti=0;ilist.length;i++){System.out.println(list[i]);}数组的定义及使用02声明:数据类型数组名[][];数据类型[][]数组名;数据类型[]数组名[];定义:数组名=new数据类型[行数][列数];inttwoDim[][]=newint[4][5];inttwoDim[][]=newint[4][];twoDim[0]=newint[5];twoDim[1]=newint[5];错误的写法:inttwoDim[][]=newint[][4];原因:省略行数不合法1.二维数组的声明与定义举例——矩阵数组矩阵数组:inty[][]=newint[2][3];内存分布图:数组的定义及使用02非矩阵数组的内存分布图初始化(1)二维整型数组int[][]aVar=newint[][]{{1,2,3},{4,5,6}};或int[][]aVar={{1,2,3},{4,5,6}};或inta[][]=newint[2][];a[0]=newint[]{1,2};a[1]=newint[]{2,3};二维数组的访问inta[][]={{1,2,3},{3},{4,5,6}};for(inti=0;ia.length;i++)for(intj=0;ja[i].length;j++)System.out.println(a[i][j]);数组的定义及使用02类和对象访问控制符MAKINGPROCESS03类和对象访问控制符03Java类的基本语法:修饰符class类名{[属性声明][构造器声明][方法声明]}类名可以是任何合法的标识符,并且是所声明类的名字有几种可使用的修饰符,但现在只使用public,声明类可被任意访问。对象的产生创建属于某个类的对象,需要通过两个步骤来实现:声明指向由类所创建的对象的变量利用new创建新的对象,并指派给先前所创建的变量。类名对象名=new类名();举例来说,如果要创建Person类的对象,可用下列的语句来实现:Personp;//先声明一个Person类的对象pp=newPerson();//用new关键字实例化Person的对象p访问对象中某个变量或方法访问属性:对象名称.属性名访问方法:对象名称.方法名()类和对象访问控制符031.对象的生成(1)对象的声明格式:类名对象名;如:SameCirclec1,c2;c1和c2是两个空对(2)创建对象格式:对象名=new类名(实参);如:c1=newSameCircle(3,4,5);c2=newSameCircle(6,7,8);Person类的构造函数的定义Person类的成员变量的定义classPerson{privateStringname=null;privateintage=0;privatedoubleheight=0;privatedou