javaWord格式文档下载.docx
- 文档编号:16990813
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:27
- 大小:397.47KB
javaWord格式文档下载.docx
《javaWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《javaWord格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。
拷贝arrayCopy();
排序sort();
二维数组
与一维数组不同的是,二维数组在分配内存时,必须告诉编译器二维数组行与列的个数。
Intscore[][]=newint[4][3];
//分配内存空间
数组名.length//取得数组的行数
数组名[行的索引].length//取得特定行元素的个数
传递一维数组
传递二维数组
返回一维数组前加int[];
返回二维数组前加int[][];
方法重载
方法的重载就是在同一个类中允许同时存在一个以上的同名方法,只要它们的参数个数或类型不同即可。
对象特征
静态特征属性
动态特征方法
类
类是一个抽象的概念,要利用类的方式来解决问题,必须用类创建一个实例化的类对象,然后通过类对象去访问类的成员变量,去调用类的成员方法来实现程序的功能。
封装信息隐藏
从程序设计角度来说,一般说来设计较好的程序的类中的属性都是需要封装的。
此时,要设置或取得属性值,则只能用setXxx()、getXxx()方法,这是一个明确且标准的规定。
当然,可以把方法设置为private,但是只能在类的内部访问,
如果要在外面进行访问,必须在类内部定义公有方法访问。
继承重用性
多态方法重载成员覆盖
类对象实例化(new)
引用数据类型
//将p1的引用赋给p2
p2=p1;
垃圾对象,指程序中不再使用的对象引用
匿名对象
没有明确声明的对象
只使用一次的对象,或没有任何一个具体的对象名称引用它
构造方法
帮助新创建的对象赋初值
与类同名
无返回值
在创建对象时,自动调用
访问权限类名称(类型1参数1,类型2参数2,…)
{
程序语句;
…//构造方法没有返回值
}
构造方法重载(参数不同)
如果不存在自定义的构造函数,那么系统调用无参构造函数,如果调用错误,将无法通过编译。
对象比较
有两种方式可用于对象间的比较,它们是“==”运算符与equals()方法。
“==”操作符用于比较两个对象的内存地址值是否相等
equals()方法用于比较两个对象的内容是否一致
str1.equals(str2);
Stringstr1="
java"
;
Stringstr2=newString("
);
Stringstr3="
str1str3指向同一块内存空间,str2是有new关键字分配的,单独占有一个内存空间。
直接赋值进行初始化比较好
This关键字
用this调用构造方法
This();
Static关键字
静态变量——类变量。
修饰类的属性,该属性为公共属性,是所有对象共享的内存空间,可以用其中的一个对象进行修改,也可以用类名进行修改。
静态方法——类方法
privatestaticStringcity="
china"
;
对于静态的属性,需要一个公有的静态方法去修改。
如:
publicstaticvoidsetcity(Stringc)
如果在类中声明了一个static类型的属性,则此属性既可以在非static类型的方法中使用,也可以在static类型的方法中使用。
但用static类型的方法调用非static类型的属性时,则会出现错误。
Main方法
01publicclassTestMain
02{
03/*
04public:
表示公共方法
05static:
表示此方法为一静态方法,可以由类名直接调用
06void:
表示此方法无返回值
07main:
系统定义的方法名称
08Stringargs[]:
接收运行时参数
09*/
10publicstaticvoidmain(String[]args)
11{
12//取得输入参数的长度
13intj=args.length;
14if(j!
=2)
15{
16System.out.println("
输入参数个数有错误!
"
17//退出程序
18System.exit
(1);
19}
20for(inti=0;
i<
args.length;
i++)
21{
22System.out.println(args[i]);
23}
24}
25}
静态代码块
被率先执行
static
System.out.println("
2.Person类的静态代码块被调用!
);
与静态方法的区别:
一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;
需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的。
静态方法在类加载的时候就已经加载可以用类名直接调用比如main方法就必须是静态的,这是程序入口
两者的区别就是;
静态代码块是自动执行的;
静态方法是被调用的时候才执行的;
构造方法的私有
方法依需要,可分为public与private。
同样的,构造方法也有public与private之分。
到目前为止,所使用的构造方法均属于public,它可以在程序的任何地方被调用,所以新创建的对象也都可以自动调用它。
如果构造方法被设为private,则无法在该构造方法所在的类以外的地方被调用。
构造方法虽然被私有了,但并不一定是说此类不能产生实例化对象,只是产生这个实例化对象的位置有所变化,即只能在本类中产生实例化对象。
对象数组
Personp[]=newPerson[3];
p[0]=newPerson("
Gaoqi"
23);
p[1]=newPerson("
wang"
14);
p[2]=newPerson("
wulin"
28);
内部类
内部类可声明成public或private。
当内部类声明成public或private时,对其访问的限制与成员变量和成员方法完全相同。
可以发现由于使用了内部类操作,所以程序在调用score属性的时候减少了创建对象的操作,从而省去了一部分的内存开销,但是内部类在声明时,会破坏程序的结构,在开发中往往不建议读者去使用。
外部类是无法找到内部类中所声明的属性。
而内部类则可以访问外部类的属性。
在类外部引用内部类
在方法中定义内部类
javadoc标记
范例:
PersonJavaDoc.java
/**
*Title:
PersonJavaDoc<
br>
*Description:
通过PersonJavaDoc类来说明Java中的文档注释<
*Copyright:
(c)2004<
*Company:
sunjava<
/br>
*@authorlixinghua
*@version1.00
*/
类的继承
在java中只允许单继承,不允许多重继承
子类对象在实例化时会默认先去调用父类中的无参构造方法,之后再调用本类中的相应构造方法。
如果父类中存在自定义的构造函数,那么,系统不会自动生成无参的构造函数,那么子类在创建对象时,就会出错;
所以,就需要在父类中添加一个无操作的无参的构造函数。
Super关键字
super主要的功能是完成子类调用父类中的内容,也就是调用父类中的属性或方法。
程序在编译时不再去找父类的无参构造函数了。
用super调用父类中的构造方法,只能放在程序的第一行。
当然,也可以用super调用父类中的属性。
classStudentextendsPerson
{
Stringschool;
publicStudent(Stringn,inta,Strings)
{
super.name=n;
super.age=a;
System.out.println(say());
this.school=s;
}
父类的属性,方法限制子类访问
Private
子类在继承父类时,会继承父类中的全部的属性与方法。
复写
当一个子类继承一父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个方法复写了父类中的方法。
同理,如果子类中重复定义了父类中已有的属性,则称此子类中的属性复写了父类中的属性。
抽象类
abstractclassPerson
专门用来当作父类,不能直接由抽象类创建对象,只能通过抽象类派生出新的类,再由它来创建对象。
可以有抽象方法,也可以有非抽象方法。
抽象类定义规则
·
抽象类和抽象方法都必须用abstract关键字来修饰。
抽象类不能被实例化,也就是不能用new关键字去产生对象。
抽象方法只需声明,而不需实现。
含有抽象方法的类必须被声明为抽象类,抽象类的子类必须复写所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。
在抽象类中,也可以拥有构造方法,但是这些构造方法必须在子类中被调用。
在抽象类定义的语法中,方法的定义可分为两种:
一种是一般的方法,它和先前介绍过的方法没有什么两样;
另一种是“抽象方法”,它是以abstract关键字为开头的方法,此方法只声明了返回值的数据类型、方法名称与所需的参数,但没有定义方法体。
那么子类中需要复写实现这个抽象方法。
publicabstractStringtalk();
//只有声明,没有函数体,在子类中复写
与一般类相同,在抽象类中,也可以拥有构造方法,但是这些构造方法必须在子
类中被调用。
Object类
所有类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类就默认继承Object类。
Final关键字
1、final标记的类不能被继承。
2、final标记的方法不能被子类复写。
3、final标记的变量(成员变量或局部变量)即为常量,只能赋值一次。
接口interface
接口(interface)是Java所提供的另一种重要技术,它的结构和抽象类非常相似,具有数据成员与抽象方法,
1、接口里的数据成员必须初始化,且数据成员均为常量,且不可更改。
2、接口里的方法必须全部声明为abstract,也就是说,接口不能像抽象类一样保有一般的方法,而必须全部是“抽象方法”。
在java中接口是用于实现多继承的一种机制,也是java设计中最重要的一个环节,每一个由接口实现的类必须在类内部复写接口中的抽象方法,且可自由地使用接口中的常量。
既然接口里只有抽象方法,它只要声明而不用定义处理方式,那么无法用它来创建对象。
利用接口打造新的类的过程,称之为接口的实现(implementation)。
InterfacestudentextendsPerson
接口是java实现多继承的一种机制,一个类只能继承一个父类,但如果需要一个类继承多个抽象方法的话,就明显无法实现,所以就出现了接口的概念。
一个类只可以继承一个父类,但却可以实现多个接口。
接口与一般类一样,均可通过扩展的技术来派生出新的接口。
原来的接口称为基本接口或父接口,派生出的接口称为派生接口或子接口。
通过这种机制,派生接口不仅可以保留父接口的成员,同时也可加入新的成员以满足实际的需要。
接口间的继承通过关键字extends实现。
接口可以继承多个接口,
一个类可以实现多个接口,接口间用“,”隔开,且需要复写所有接口的全部抽象方法。
如下:
classstudentimplementsPerson,Person1
publicStringsay()
return"
复写接口person的abstract方法say()"
publicStringsay1()
复写接口person1的abstract方法say1()"
对象多态性
子类实例化对象可以转换为父类实例化对象
向上转型,父类对象通过子类对象去实例化。
向下转型,父类的对象可以转换为子类对象,这时则必须要进行强制的类型转换。
一、向上转型可以自动完成;
用子类实例化时,调用子类和父类相同的函数时,先调用子类的;
如果调用只有父类的函数时,则显示父类的函数。
publicstaticvoidmain(String[]args)
Personp=newstudent();
p.fun1();
p.fun2();
二、向下转型必须进行强制类型转换,
students=(student)(p);
s.fun1();
s.fun3();
instanceof关键字的使用
用于判断一个类是否实现了某个接口,也可以用它来判断一个实例对象是否属于一个类。
instanceof的语法格式为:
对象instanceof类(或接口)
它的返回值是布尔型的,或真(true)、或假(false)。
接口对象的实例化
接口是可以被实例化的,但是不能被直接实例化,通过接口的子类对其进行实例化。
classstudentimplementsPerson
Personp=newstudent();
使用接口就是定义一个统一的标准。
例如:
interfaceUSB
publicabstractvoidstart();
publicabstractvoidstop();
classMP3implementsUSB
publicvoidstart()
System.out.println("
MP3devicestart"
publicvoidstop()
MP3devicestop"
classMoveDiskimplementsUSB
publicvoidstart()
MoveDiskdevicestart"
MoveDiskdevicestop"
classcomputer
publicvoidwork(USBu)
u.start();
u.stop();
publicclassinterfacestandard
publicstaticvoidmain(String[]args)
newcomputer().work(newMP3());
newcomputer().work(newMoveDisk());
异常处理
异常处理方法
1交由java默认的异常处理机制做处理,这种方法只输出异常信息,并终止程序。
2自行编写异常处理模块。
异常类的继承架构
Exception类扩展出数个子类,其中IOException、RunntimeException是较常用的两种。
RunntimeException即使不编写异常处理的程序代码,依然可以编译成功,而这种异常必须是在程序运行时才有可能发生。
IOException一定要编写异常处理的程序代码才行,它通常用来处理与输入/输出相关的操作,如文件的访问、网络的连接等。
抛出异常throw
抛出异常有下列两种方式:
1、程序中抛出异常
2、指定方法抛出异常
包及访问权限
包(package)
Package名称;
定义了包以后,执行程序有一定的变动。
javac–d.package1.java//生成一个demo文件夹
javademo.java.package1
import语句的使用
如果几个类分别属于不同的package时,在某个类要访问到其它类的成员时,则必须做下列的修改:
若某个类需要被访问时,则必须把这个类公开出来,也就是说,此类必须声明成public。
若要访问不同package内某个public类的成员时,在程序代码内必须明确地指明“被访问package的名称.类名称”。
importpackage名称.类名称;
将某个package内的整个类导入,后续访问时就不需要再写包名称了。
在java中有这样的规定:
导入全部类或是导入指定的类,对于程序的性能是没有影响的。
importdemo.java.a.Person改成importdemo.java.a.*,
JDK中常见的包
java.lang—包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能
java.awt—包含了构成抽象窗口工具集(abstractwindowtoolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。
javax.swing—此包用于建立图形用户界面。
java.applet—包含applet运行所需的一些类。
—包含执行与网络相关的操作的类。
java.io—包含能提供多种输入/输出功能的类。
java.util—包含一些实用工具类,如定义系统特性、与日期日历相关的函数。
类成员的访问控制权限
Private只能在类内部访问
Public
Protect
默认访问权限default默认的访问控制成员可以被这个包中的其它类访问。
如果一个子类与其父类位于不同的包中,子类也不能访问父类中的默认访问控制成员。
命名习惯
◆包名中的字母一律小写,如:
demo.java。
◆类名、接口名应当使用名词,每个单词的首字母大写,如:
TestPerson。
◆方法名,第一个单词小写,后面每个单词的首字母大写,如:
talkMySelf。
◆常量名中的每个字母一律大写,如:
COUNTRY。
多线程
进程一次性执行完毕原子性动态执行
多进程操作系统能同时运行多个进程,cpu具有分时机制,所以每一个进程都能循环获得分配给自己的时间片。
线程(Thread)比进程更小的执行单位,可以在进程内部同时执行。
实现并发程序控制
单一线程
多线程
通过继承Thread类来实现。
通过实现Runnable接口实现多线程
Thread类也是Runnable接口的一个子类,但其无法实现资源共享。
但是Runnable接口实现的子类可实现。
一个类继承了Thread类后,该类的一个对象无论调用多少次start()方法,都只有一个线程在运行。
如果运行多个线程对象的start()方法,就会相应的执行多少个线程,而且,这些线程独占各自的资源。
实现Runnable接口的类,启动多个线程对象,操作的是同一个资源,实现了资源共享。
Thread类
Runnable接口
一个线程对象.start()方法
多个线程对象.start()方法
多个资源
一个资源
占用资源
独占
共享
可见,实现Runnable接口相对于继承Thread类来说,有如下显著的优势:
(1)、适合多个相同程序代码的线程去处理同一资源的情况,把虚拟CPU(线程)同程序的代码、数据有效分离,较好地体现了面向对象的设计思想。
(2)、可以避免由于Java的单继承特性带来的局限。
开发中经常碰到这样一种情况,即:
当要将已经继承了某一个类的子类放入多线程中,由于一个类不能同时有两个父类,所以不能用继承Thread类的方式,那么就只能采用实现Runnable接口的方式了。
(3)、增强了程序的健壮性,代码能够被多个线程共享,代码与数据是独立的。
当多个线程的执行代码来自同一个类的实例时,即称它们共享相同的代码。
多个线程可以操作相同的数据,与它们的代码无关。
当共享访问相同的对象时,即共享相同的数据。
当线程被构造时,需要的代码和数据通过一个对象作为构造函数实参传递进去,这个对象就是一个实现了Runnable接口的类的实例。
事实上,几乎所有多线程应用都可用第二种方式,即实现Runnable接口。
线程状态
五种状态:
创建Threadth=newThread();
就绪调用start()方法,启动线程,此时线程进入就绪状态,等待CPU的调度;
运行自动调用线程对象的run()方法,run()定义了线程的操作和功能;
阻塞一个正在运行的线程,在某些情况下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java