java整理Word下载.docx

上传人:b****7 文档编号:22164162 上传时间:2023-02-02 格式:DOCX 页数:19 大小:2.23MB
下载 相关 举报
java整理Word下载.docx_第1页
第1页 / 共19页
java整理Word下载.docx_第2页
第2页 / 共19页
java整理Word下载.docx_第3页
第3页 / 共19页
java整理Word下载.docx_第4页
第4页 / 共19页
java整理Word下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

java整理Word下载.docx

《java整理Word下载.docx》由会员分享,可在线阅读,更多相关《java整理Word下载.docx(19页珍藏版)》请在冰豆网上搜索。

java整理Word下载.docx

b=false,x=3,y=4,a=4,b=5

运算结果为:

b=false,x=3,y=4,a=5,b=6

位运算符

位运算符用来对二进制位进行运算,运算操作数应是整数类型,结果也是整数类型。

~,&

|,^,<

<

>

>

赋值运算符

复合赋值运算符使用比较简单,但要注意下述两点:

(1)复合赋值运算符的右边是一整体。

如:

a*=b+c;

等价于a=a*(b+c);

(2)复合赋值可以有等价形式,但是是有条件的:

即左操作数op1仅计算1次。

例如:

设有inta[]={1,2},b=2,i=0;

//a是一数组

则a[i++]+=b;

//执行后i=1,a[0]=3,a[1]=2;

不等价于a[i++]=a[i++]+b;

//执行后i=2

条件运算符

 布尔表达式?

表达式1:

表达式2 (a>

b)?

a:

b;

//将返回a和b中较大的那个数值

字符串运算符

“+”可以实现两个或多个字符串的连接“+=”把两个字符串连接的结果放进第一个字符串里。

包装类

基本数据类型对应的包装类

booleanBoolean

byteByte

charCharacter

shortShort

intInteger

longLong

floatFloat

doubleDouble

Break和continue的区别

Continue结束本次循环,跳回到循环控制表达式部分,判断是否进行下一次循环。

Break跳出循环体,执行循环体外的下一条语句

字符串

String类字符串的定义:

String类是字符串常量类,String对象建立后不能修改。

用字符串常量直接初始化一个String对象,例如:

Strings="

HelloWorld."

;

StringBuffer类的对象是一种可以改变(如增长、修改)的字符串对象,使用起来比String类更加方便。

在Java语言中支持字符串的加运算,实际上就是使用了StringBuffer类。

例如:

StringBufferstr=newStringBuffer();

str=“abc”;

//错误,str指向的地址不能改变,只可修改空间值

StringBuffer类提供了下面几种构造方法对一个可变的字符串对象进行初始化。

StringBuffer()建立空的字符串对象。

StringBuffer(intlen)建立长度为len的字符串对象。

StringBuffer(Strings)建立一个初值为对象s的字符串对象。

String与StringBuffer类区别

1、地址与空间的区别

2、拼接的区别

数组

与其他高级语言不同,Java在数组声明时并不为数组分配存储空间,因此,在声明的[]中不能指出数组中元素的个数(数组长度);

声明一个一维数组的一般形式为:

类型数组名[];

或类型[]数组名;

相同类型的组数据对象。

数组是对象。

声明原始或类的类型的数组:

chars[];

Pointp[];

char[]s;

Point[]p;

(1)数组初始化

声明同时指定初始值。

一维数组初始化的形式如下:

类型数组名[]={元素1[,元素2…]}

(2)使用new运算符

若数组已经声明,为已声明数组分配空间的一般形式如下:

数组名=new类型[数组大小];

若数组未声明,在声明的同时用new为数组分配空间:

类型数组名[]=new类型[数组大小];

数组的引用

一维数组的引用分为数组元素的引用和数组的引用,大部分时候都是数组元素的引用。

一维数组元素的引用方式为:

数组名[下标]

其中:

下标是int类型的,也可以是byte、short、char等类型,但不允许为long类型。

复合类型的数组需要进一步对数组元素用new运算符分配空间分配并初始化操作。

设已声明一个引用类型的数组:

类型数组名[];

对数组的动态空间分配步骤如下:

(1)为数组分配每个元素的引用空间

数组名=new类型[数组大小];

(2)为每个数组元素分配空间(参数表用于指定数组元素初值)

数组名[0]=new类型(参数表);

数组名[数组大小-1]=new类型(参数表);

二维数组与一维数组类似;

foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。

也即“for每一个”的意思。

foreach的语句格式:

for(元素类型t元素变量x:

遍历对象obj)

 

引用了x的java语句;

}

在Java语言中,数组可用为方法参数和方法的返回值

在被调方法中,改变了形参数组,则该形参对应的实参数组也将发生变化,

类是组成Java程序的基本元素,它封装了一系列的变量(即数据成员,也称为“域(field)”)和方法(即成员方法method),是一类对象的原型。

一、创建对象

创建类的对象需用new运算符,一般形式为:

对象名=new类名()或对象名=new类名(参数表)

rect1=newRect();

为指定的类在内存中分配空间,并将空间的引用给对象变量。

new运算符也可以与类声明一起使用来创建类的对象。

Rectrect1=newRect();

二、访问对象成员

要访问对象成员(包括属性和方法),使用点号。

<

对象>

.<

成员>

示例:

d.setWeight(42);

d.weight=42;

//onlypermissibleifweightispublic

构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面:

(1)构造方法名与类同名。

(2)构造方法无返回值,也没有返回类型。

(3)每一个类可以有零个或多个构造方法,可以重载。

(4)构造方法在创建对象时自动执行,一般不能显式地直接调用。

注意:

1、当方法形式参数名与成员变量名相同时,使用时会产生混淆,在Java语言中,可用this关键字表示本对象。

2、允许构造方法重载,允许一个构造方法调用另一个构造方法,调用的方法是:

this(实际参数表)

该语句根据参数表调用相应的构造方法。

但此时,this调用构造器代码,必须是该方法的首行

没有参数的构造方法叫做无参构造方法。

类和成员的修饰符

在类和类的成员定义时可以使用一些修饰符来对类和成员的使用作某些限定。

一般将修饰符分为两类:

访问控制符和非访问控制符

访问控制符public、protected、private

非访问控制符有static、final、native、volatile、abstract等

一、访问权限符:

(1)public:

对于成员来说:

任何其他类都可以访问它们,不管在同一个包中还是在另外的包中。

对于类来说:

也是一样。

(2)private:

只能在该成员隶属于的类中访问。

类不可以声明为private。

(3)protected:

相同包中的类可以访问(包访问权限);

派生的子类也可以访问,即使不在同一个包内,与默认的区别就是多一个子类可以访问。

类不可以声明为protected。

1)、每个编译单元(类文件)都仅能有一个publicclass。

(2)、publicclass的名称(包含大小写)必须和其类文件同名。

(3)、一个类文件(*.java)中可以不存在publicclass。

(4)、class不可以显式是private和protected

二、非访问控制符

1、static修饰符

使用static修饰符来修饰类的成员变量和方法成员,使它们成为静态成员,也称为类成员,属于整个类,被所有该类对象共享。

对静态成员的使用要注意两点:

(1)static块代码在类被加载时仅执行一次。

记忆

(2)静态方法不能访问属于某个对象的成员变量,而只能处理属于整个类的成员变量。

即静态方法只能处理静态成员变量。

(3)可以用两种方式调用静态成员,它们的作用相同。

变量:

类名.变量、类对象.变量。

方法:

类名.方法名()、类对象.方法名()。

2、final修饰符

final修饰符可应用于类、方法和变量。

final的意义为终极或最终。

final类不能被继承,即final类无子类。

final方法不能被覆盖,即子类的方法名不能与父类的final方法名相同。

因为final变量不能改变,没有必要在每个对象中进行存储,一般将final变量声明为静态,以节省存储空间

3、abstract修饰符

abstract修饰符可应用于类和方法,称为抽象类和抽象方法。

抽象类需要继承、抽象方法需要在子类中实现才有意义。

4、native修饰符

5、synchronized修饰符

synchronized修饰符可应用于方法或块,在多线程程序中,对用于共享的方法和块加互斥锁,使得任一时刻,synchronized方法或块只能由一个线程执行或操作。

枚举类型

enum类型字段由一组固定的常量组成

方法参数是类的对象

因为在类的对象中实际存储为对象的引用,因此在调用类参数时方法间传送的是引用。

引用类型的方法参数是方法间传送数据的桥梁。

类对象作为类的成员

类的数据成员也可以是引用类型的数据,如数组、字符串和类等。

若一个类的对象是一个类的成员时,要用new运算符为这个对象分配存储空间。

在包含类数据成员的类及类的实例中可以访问类数据成员的成员。

classRectC{

doublewidth,length;

RectC(doublew,doublel)

{width=w;

length=l;

}

}

classRectangleC{//具有两个成员的类

RectCr=newRectC(10,20);

//对象成员是需要初始化的(实参)

doublearea;

//基本类型成员

classClassMember{

publicstaticvoidmain(Stringargs[]){

RectangleCrr=newRectangleC();

rr.area=rr.r.width*rr.r.length;

System.out.println("

长方形面积为:

"

+rr.area);

内部类(Innerclass)

内部类(放在内部的类),也称为嵌套类。

允许一个类的定义被放到另一个类定义里、一个语句块里或一个表达式内部。

内部类的名称不能与所嵌套的类相同,而且只能在定义的范围中使用。

内部类具有下面一些特性:

(1)内部类可以被定义在方法中。

(2)内部类可以使用所嵌套类的类变量和实例变量以及所嵌套的块中的本地变量。

(3)内部类可以被定义为abstract抽象类。

(4)内部类可以被声明为private或protected,以便防护它们不受来自外部类的访问。

访问保护不阻止内部类使用其他类的任何成员。

(5)一个内部类可以作为一个接口,由另一个内部类实现。

(6)声明为static的内部类成为顶层类。

这些内部类失去了在本地范围和其他内部类中使用数据或变量的能力。

(7)内部类不能声明任何static成员,只有顶层类可以声明static成员。

因此,一个需求static

成员的内部类必须使用来自顶层类的成员。

类的继承

在Java语言中,只允许单继承,类继承不改变成员的访问权限,父类中的成员为公有的或被保护的,则其子类的成员访问权限也继承为公有的或被保护的。

Java中的继承是通过extends关键字来实现的

1、定义子类

publicclassHelloAppletextendsApplet{......}

2、子类的初始化

子类必须调用父类的构造方法对继承的变量初始化

(1)若父类是无参数的构造方法,则子类一般缺省调用该构造方法,当然也可以显式用super来调用,格式为:

super()。

(2)若子类无自己的构造方法,则它将调用父类的无参构造方法作为自己的构造方法;

(若父类没有无参构造方法,出错。

(2)若子类有自己的构造方法,则在创建子类对象时,它将先调用父类的无参构造方法,然后再执行自己的构造方法。

(3)若父类是有参数的构造方法,子类可以通过在自己的构造方法中使用super关键字来调用它,但这个调用语句必须是子类构造方法的第一个可执行语句。

3、类继承的传递性

类继承具有传递性,即子类只能继承父类的所有非私有成员,也继承父类的父类直至祖先所有的所有非私有成员。

成员方法覆盖

应与父类有完全相同的方法名、返回值和参数列表

下述规则适用于覆盖方法:

覆盖方法的返回类型必须与它所覆盖的方法相同。

覆盖方法不能比它所覆盖的方法访问性差。

覆盖方法不能比它所覆盖的方法抛出更多的异常

Object类

Object类是Java中的所有类的根

object类的两个重要方法:

equals()toString()

抽象类和抽象方法

abstract修饰的抽象类需要子类继承,在派生类中实现抽象类中的抽象方法。

抽象类被派生、抽象方法被子类实现后,才有实际意义。

抽象方法是只有返回值类型、方法名、方法参数而不定义方法体的一种方法。

抽象方法的方法体在子类中才编写实现。

注意不能用abstract修饰构造方法、静态方法和私有(private)方法,也不能覆盖父类中的抽象方法

抽象方法必须定义在抽象类中。

抽象类是一种未实现的类,抽象类不能用new实例化一个对象

接口

接口是若干完成某一特定功能的没有方法体的方法(抽象方法)和常量的集合,Java语言使用接口来实现类间多重继承的功能。

1、接口的定义

接口有类似类的结构,其定义格式如下:

[修饰符]interface接口名[extends父接口名表]{

//接口体

接口名是一合法的标识符。

接口体同抽象类相似,为变量和抽象方法的集合,但没有构造方法和静态方法。

接口体中定义的变量均为终极(final)的、静态(static)的和公共(public)的。

接口体中定义的方法均为抽象的和公共的。

2、接口的实现

派生类实现哪个或哪些接口用implements说明,不能用extends说明。

派生类在实现接口时,还要注意:

若实现接口的类不是抽象类(即派生类不是抽象类),则在该类的定义部分必须实现指定接口的所有抽象方法。

接口的实现。

interfaceIrect{

doublew=3,l=4;

voidcompute();

classCrectimplementsIrect{

publicvoidcompute(){

边长分别为3和4的长方形面积为:

+w*l);

publicclassInterfaceDemo{

Crectr=newCrect();

pute();

程序运行结果如下:

分别为3和4的长方形面积为:

12.0

边长包(package)

一组相关的类和接口集合称为包,包将java语言的类和接口有机地组织成层次结构。

创建包

包由包语句package创建,其语法格式如下:

package[包名1[.包名2[.[...]]]]关键字package后是不同层次的包名,各级包名之间用“.”号分隔。

package语句必须是程序的第一条非空格、非注释语句。

通过package语句,可将Java程序分层次地存放在不同的目录下,目录名称与包的名称相同。

如:

在Rect类定义前加语句package创建包:

packagech05;

1/编译程序完成生成Rect.class文件后,可将当前目录的Rect.class文件复制或移动到创建的ch05子目录中。

若在编译上述程序时,带d编译参数来进行编译,即使用编译命令:

javac-d目录名Rect.java

来进行编译,java系统自动在命令行中d参数指定的目录(该目录已经存在)中创建ch05(与程序中的包名相同)子目录,然后自动将生成的类文件Rect.class存放其中。

javac–dd:

\temp\Rect.java

在Java程序中,若要用到某些包中的类或接口:

一种方法是在程序的开始部分写出相应的引入(import)语句,指出要引入哪些包的哪些类。

另一种方法不用引入语句,直接在要引入的类和接口前给出其所在包名。

1、使用import语句

import语句的格式如下:

import包名;

或import包名.标识符;

或import包名.*;

2、直接使用包

这种方法一般用在程序中引用类和接口次数较少的时候,在要引入的类和接口前直接给出其所在包名。

java.applet.Appletap=newjava.applet.Applet();

1、类及类成员的访问权限

(1)仅在本类内可见。

(2)在同一包内可见。

(3)在同一包内及其子类(可能不同包)可见。

(4)在所有包内可见。

声明为private的类成员仅能在本类内被访问;

声明为protected的类成员可以在本类、本包、本类的子类被访问;

声明为public的类成员可以在所有包内被访问;

未用任何修饰符声明的类成员,则隐含为在本包内可被访问。

2、类的访问权限

类通常只用两种访问权限:

缺省(类似C++中的friendly)和public。

类声明为public时,可以被任何包的代码访问;

缺省时,可被本包的代码访问。

Java的应用程序接口(API)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 日语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1