马士兵java自学笔记Word格式.docx

上传人:b****6 文档编号:21904796 上传时间:2023-02-01 格式:DOCX 页数:13 大小:71.20KB
下载 相关 举报
马士兵java自学笔记Word格式.docx_第1页
第1页 / 共13页
马士兵java自学笔记Word格式.docx_第2页
第2页 / 共13页
马士兵java自学笔记Word格式.docx_第3页
第3页 / 共13页
马士兵java自学笔记Word格式.docx_第4页
第4页 / 共13页
马士兵java自学笔记Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

马士兵java自学笔记Word格式.docx

《马士兵java自学笔记Word格式.docx》由会员分享,可在线阅读,更多相关《马士兵java自学笔记Word格式.docx(13页珍藏版)》请在冰豆网上搜索。

马士兵java自学笔记Word格式.docx

数据类型按容量大小排序为:

Byte,short,char->

int->

long->

float->

double

Byte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型

2.容量大的暑假类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出;

使用时要格外注意。

3.有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算。

++(--):

在前时先运算再取值;

在后时先取值再运算。

当“=”两侧数据类型不一致时,可以使用默认类型转换或使用强制类型转换原则进行处理,可以将整型常量赋值给byte,short,char等类型变量,而不需要进行强制类型转载,只要不超出其表数范围。

字符串连接符:

1.“+”除用于算术加法运算外,还可用于对字符串进行连接操作;

2.“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串,然后再进行连接;

3.当进行打印时,无论任何类型,都自动转为字符串进行打印。

Break语句用于终止某个语句块的执行,用在循环语句体中,可以强行退出循环;

Continue语句用在循环语句体中,用于终止某次循环过程,跳过循环体中continue语句下面未执行的循环,开始下一次循环过程;

Java中switch语句只能探测int类型值。

Java语言中使用下述形式调用方法:

对象名.方法名(实参列表)

Java中进行函数调用中传递参数时,遵循值传递的原则:

基本类型传递的是该数据值本身,引用类型传递的是对对象的引用,而不是对象本身。

类可以看成一类对象的模板,对象可以看成该类的一个具体实例。

构造函数与类同名且没有返回值。

构造函数是定义在Java类中的一个用来初始化对象的函数。

创建对象时,使用构造函数初始化对象的成员变量。

方法的重载:

指一个类中可以定义有相同的名字,但参数不同的多个方法。

调用时,会根据不同的参数表选择对应的方法。

this关键字:

1.在类的方法定义中使用的this关键字代表使用该方法的对象的引用;

2.当必须指出当前使用方法的对象是谁时要使用this;

3.有事使用this可以处理方法中成员变量和参数重名的情况;

4.this可以看作是一个变量,它的值是当前对象的引用。

Static关键字:

1.在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份;

2.用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所有在static方法中不可以访问非static的成员。

静态方法不再是针对于某个对象调用,所以不能访问非静态成员。

3.可以通过对象引用或类名(不需要实例化)访问静态成员。

Java只支持单继承,不允许多继承:

一个子类只能有一个基类,一个基类可以派生出多个子类来。

对于classd的权限修饰只可以用public和default。

1.public类可以在任意地方被访问;

2.default类只可以被同一个包内部的类访问。

方法的重写:

1.在子类中可以根据需要对从基类中继承来的方法进行重写;

2.重写方法必须和被重写方法具有相同方法名称,参数列表和返回类型;

3.重写方法不能使用比被重写方法更严格的访问权限。

继承中的构造方法:

1.子类的构造的过程中必须调用其基类的构造方法;

2.子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法;

使用this(argument_list)调用本类的另外的构造方法;

如果调用super,必须写在子类构造方法的第一行;

3.如果子类的构造方法中没有显示的调用基类构造方法,则系统默认调用基类无参数的构造方法。

4.如果子类的构造方法中既没有显式调用基类构造方法,而基类中又又没有无参的构造方法,则编译出错。

Object类是所有Java类的根基类;

Object类中定义有publicStringtoString()方法,其返回值是String类型,描述当前对象的有关信息;

在进行String与其他类型数据的连接操作时,将自动调用该对象类的toString()方法;

Object类中定义有publicStringequals(Objectobj)方法,提供定义对象是否“相等”的逻辑,Object的equals方法定义为:

x.equals(y)当x和y是同一个对象的应用时返回true否则返回false;

对象转型(casting):

1.一个基类的引用类型变量可以“指向”其子类的对象;

2.一个基类的引用不可以访问其子类对象新增加的成员(属性和方法);

3.可以使用引用变量instanceof类名来判断该引用类型所“指向”的对象是否属于该类或该类的子类;

4.子类的对象可以当作基类的对象来使用称作向上转型(upcasting),反之成为向下转型(downcasting).

多态:

1.要有继承;

2.要有重写;

3.父类引用指向子类对象。

抽象类:

1.用abstract关键字来修饰一个类时,这个类叫做抽象类;

用abstract来修饰一个方法时,该方法叫做抽象方法;

2.含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写;

3.抽象类不能被实例化;

4.抽象方法只需声明,而不需实现。

final关键字:

1.final的变量的值不能够被改变;

2.final的方法不能够被重写;

3.final的类不能够被继承。

接口:

1.接口(interface)是抽象方法和常量值的定义的集合;

2.从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现;

3.接口特性:

(1)多个无关的类可以实现同一个接口;

(2)一个类可以实现多个无关的接口;

(3)与继承关系相似,接口与实现类之间存在多态性;

(4)接口声明属性默认为publicstaticfinal的;

也只能是publicstaticfinal的;

(5)接口中只能定义抽象方法,而且这些方法默认为public的,也只能是public的;

(6)接口可以继承其他的接口,病添加新的属性和抽象方法。

异常:

1.Java程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并将被提交给Java运行时系统,这个过程成为抛出(throw)异常;

2.当Java运行时系统接受到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程成为捕获(catch)异常。

3.try代码段包含可能产生例外的代码;

try代码段后跟有一个或多个catch代码段;

每个catch代码段声明其能处理的一种特定类型的异常并提供处理的方法;

当异常发生时,程序会终止当前的流程,根据获取异常的类型去执行相应的catch代码段;

finally段的代码无论是否发生异常都有执行;

4.异常的分类:

(1)Error:

成为错误,有Java虚拟机生成并抛出,包括动态链接失败,虚拟机错误等,程序对其不做处理;

(2)Exception:

所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显式的声明或捕获;

(3)RuntimeException:

一类特殊的异常,如被0除,数组下标超范围等,其产生比较频繁,处理麻烦,如果显式的声明或捕获将会对程序的可读性和运行效率影响很大。

因此有系统自动检测并将它们交给缺省的异常处理程序(用户可不必对其处理)。

5.try语句:

(1)try{…}语句指定了一段代码,该段代码就是一次捕获并处理例外的范围;

(2)在执行过程中,该段代码可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句要分别对这些异常做相应的处理;

(3)如果没有例外产生,所有的catch代码段都被略过不执行。

6.catch语句:

(1)在catch语句块中是对异常进行处理的代码,每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象;

(2)在catch中声明的异常对象(catch(SomeExceptione))封装了异常事件发生的信息,在catch语句块中可以使用这个对象的一些方法获取这些信息,如:

a)getMessage()方法,用来得到有关异常事件的信息;

b)printStackTrace()方法,用来跟踪异常事件发生时执行堆栈的内容。

7.finally语句:

(1)finally语句为异常处理提供一个统一的出口,使得在控制流程转到程序的其它部分以前,能够对程序的状态作统一的管理;

(2)无论try所指定的程序块中是否抛出例外,finally所指定的代码都要被执行;

(3)通常在finally语句中可以进行资源的清楚工作如:

关闭打开的文件,删除临时文件…

8.自定义异常的使用步骤:

(1)通过继承java.lang.Exception类声明自己的异常类;

(2)在方法适当的位置生成自定义异常的实例,并用throw语句抛出;

(3)在方法的声明部分用throws语句声明该方法可能抛出的异常。

重写方法需要抛出与原方法所抛出异常类型一致异常或不抛出异常!

数组:

1.数组可以看成是多个相同类型数据组合,对这些数据的统一管理;

2.数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量;

3.数组中的元素可以是任何数据类型,包括基本类型和引用类型;

4.Java语言中声明数组时不能指定其长度(数组中元素的个数);

5.Java中使用关键字new创建数组对象,格式为:

数组名=new数组元素的类型[数组元素的个数]

6.元素为引用数据类型的数组中的每一个元素都需要实例化;

7.数组的初始化:

(1)动态初始化:

数组定义与为数组元素分配空间和赋值的操作分开进行;

(2)静态初始化:

在定义数组的同时就为数组元素分配空间并赋值;

(3)数组元素的默认初始化:

数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化;

8.数组元素的引用:

(1)定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;

(2)每个数组都有一个属性length指明它的长度,如a.length的值为数组a的长度(元素个数);

9.二维数组:

(1)二维数组可以看成以数组为元素的数组;

(2)Java中多位数组的声明和初始化应按从高维到低维的顺序进行;

10.数组的拷贝:

(1)使用java.lang.System类的静态方法publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength);

(2)可以用于数组src从第srcPos项元素开始的length个元素拷贝到目标数组从destPos项开始的length个位置;

(3)如果源数据数目超过目标数组边界会抛出IndexOutOfBoundsException异常。

String类:

1.java.lang.String类代表不可变的字符序列;

2.String类的常见构造方法:

(1)String(Stringoriginal):

创建一个String对象为original的拷贝;

(2)String(char[]value):

用一个字符数组创建一个String对象;

(3)String(char[]value,intoffset,intcount):

用一个字符数组从offset项开始的count个字符序列创建一个String对象;

3.String类常用方法:

静态重载方法:

publicstaticStringvalueOf(…)可以将基本类型数据转换为字符串;

方法publicString[]split(Stringregex)可以将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组;

StringBuffer类:

1.java.lang.StringBuffer代表可变的字符序列;

2.StringBuffer和String类似,但StringBuffer可以对其字符串进行改变;

3.StringBuffer类的常见构造方法:

(1)StringBuffer():

创建一个不包含字符序列的“空”的StringBuffer对象;

(2)StringBuffer(Stringstr):

创建一个StringBuffer对象,包含与String对象str相同的字符序列;

4.StringBuffer常用方法:

基本数据类型包装类:

1.包装类(如:

Interger,Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作;

2.以java.lang.Interger类为例:

构造方法:

(1)Integer(intvalue)

(2)Integer(Strings)

3.包装类常见方法:

Math类:

java.lang.Math提供了一系列静态方法用于科学计算;

其方法的参数和返回值类型一般为double型:

File类:

1.java.io.File类代表系统文件名(路径和文件名);

2.File类的常见构造方法:

(1)publicFile(Stringpathname):

以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储;

(2)publicFile(Stringparent,Stringchild):

以parent为父路径,child为子路径创建File对象;

3.File的静态属性Stringseparator存储了当前系统的路径分隔符;

4.File类常用方法:

枚举类型:

1.只能够取特定值中的一个;

2.使用enum关键字;

3.是java.lang.Enum类型

用GUI设计完成1+1=2;

importjava.awt.*;

importjava.awt.event.*;

publicclassTFMath{

publicstaticvoidmain(String[]args){

newTFFrame().launchFrame();

}

}

classTFFrameextendsFrame{

TextFieldnum1,num2,num3;

publicvoidlaunchFrame(){

num1=newTextField(10);

num2=newTextField(10);

num3=newTextField(15);

LabellblPlus=newLabel("

+"

);

ButtonbtnEqual=newButton("

="

btnEqual.addActionListener(newMyMonitor());

setLayout(newFlowLayout());

add(num1);

add(lblPlus);

add(num2);

add(btnEqual);

add(num3);

pack();

setVisible(true);

privateclassMyMonitorimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

intn1=Integer.parseInt(num1.getText());

intn2=Integer.parseInt(num2.getText());

num3.setText("

"

+(n1+n2));

}

C/S监听和信息的发送

import.*;

importjava.io.*;

publicclassTCPServer{

publicstaticvoidmain(String[]args)throwsException{

ServerSocketss=newServerSocket(6666);

while(true){

Sockets=ss.accept();

System.out.println("

aclientconnect!

DataInputStreamdis=newDataInputStream(s.getInputStream());

System.out.println(dis.readUTF());

dis.close();

s.close();

publicclassTCPClient{

Sockets=newSocket("

127.0.0.1"

6666);

OutputStreamos=s.getOutputStream();

DataOutputStreamdos=newDataOutputStream(os);

Thread.sleep(30000);

dos.writeUTF("

helloserver!

dos.flush();

dos.close();

s.close();

线程调用,实现程序的交叉调用

publicclassTestThread1{

publicstaticvoidmain(Stringargs[]){

Runner1r=newRunner1();

r.start();

for(inti=0;

i<

100;

i++){

MainThread:

------"

+i);

classRunner1extendsThread{

publicvoidrun(){

i++){

Runner1:

监听器实现了什么接口(ActionListener),实现了什么方法(publicvoidactionPerformed(ActionEvente)

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

当前位置:首页 > 高等教育 > 农学

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

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