java复习Word格式文档下载.docx
《java复习Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《java复习Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
![java复习Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-1/2/680b8de9-ba4b-46fe-9a18-1b773d3cf722/680b8de9-ba4b-46fe-9a18-1b773d3cf7221.gif)
main方法必须用static修饰,因为main是入口方法,最早被调用。
类方法只能调用类方法和类变量,不能调用实例方法和实例变量。
类方法和类变量也可以通过类名来调用。
(类名只能调用类方法和类变量,不能调用实例方法和实例变量,对象名两者都可调用)
4.方法重载(Overload)
方法的重载:
方法名相同,参数不同(参数个数或参数类型)为方法重载,其它均不是。
如返回值不同、参数名不同都不是方法重载。
intfun(inta,intb)和voidfun(inta,intb)不是方法的重载
intfun(inta,intb)和intfun(intx,inty)也不是方法的重载,因为它们都是两个参数,且都为int型,参数的个数和参数的类型都相同
5.this关键字
this代表当前对象,故它只能出现在实例方法中,不能出现在类方法中
6.包
打包packagecom.jxust
如果编译时要将生成的class文件放入打包的文件夹中,要使用参数-d
javac–de:
\javaMyClass.java
引包importjava.util.*;
//引入java.util中所有的类不包括其子包中的类
java.util.*不包括java.util.regex.*中的类
java.lang包中的类不需要引入,系统自动引入
Math类位于java.lang包中,不位于java.math包中
7.访问权限
访问权限的修饰符有private、protected、public和缺省四种。
可以修饰类、接口、方法、变量等。
类只能用public和缺省修饰。
public所有地方均可访问
缺省包内可以访问
protected包内和子类可以
private只有当前类中可以访问,其它任何地方均不可以
8.继承性
使用关键字extends,一个子类只能继承一个父类。
子类和父类在同一包中时除private修饰的不能被继承,其它的均会被继承
子类和父类不在同一包中子类继承public和protected修饰的成员
9.instanceof运算符
对象instanceof类返回boolean类型的值,某一个对象是不是类的实例
对象一定是自己类的实例,子类对象是父类的实例,父类对象一般情况下不是子类的实例(当父类对象是用子类的构造方法实例化时,父类对象也是子类的实例)
10.子类对象的特点
当用子类的构造方法创建一个子类的对象时,不仅子类中声明的成员变量被分配了内存,而且父类中所有的成员变量(包括private)也都会分配内存空间,但只是其中一部分(被子类继承的)能被子类对象的变量调用。
子类继承的方法可以操作子类继承和隐藏的成员变量(全是父类中定义的),子类新定义的方法只能操作子类继承的变量不能操作隐藏的变量
11.方法重写(Override)
子类和父类的方法具有相同的名称和类型(包括返回值),且访问权限不得低于父类
12.final关键字
修饰类,则该类不能被继承
修饰方法,则该方法不能被重写
修饰变量,则为常量
13.对象的上转型对象P98
父类对象变量用子类构造方法实例化,称对象的上转型对象。
(注意子类对象不能用父类构造方法去实例化,也不能把父类实例化的引用赋给子类)
上转型对象能够访问子类中
被继承的成员(父类中定义而子类中没有定义的变量和方法)
被隐藏的变量(访问到的是父类中的值)
被重写的方法(访问到的是子类中的值)
被重写的静态方法(访问到的是父类中的值)
14.abstract关键字
修饰类为抽象类,修饰方法为抽象方法
抽象方法只声明不实现没有方法体,构造方法和static方法不能是抽象的
父类的抽象方法往往在子类中实现
抽象类不能被实例化(不能用new分配内存),抽象类的对象只能用子类去实例化,所以抽象类可以具有指向子类对象的对象引用(上转型)Aa=newB()(B是A的子类)
一个类中如果有抽象方法,这个类要定义为抽象的,
抽象类中即有抽象方法,也可以有不是抽象的方法。
15.接口
定义接口使用关键字interface,(interface默认有abstract修饰,故接口变量不能用自己的构造方法实例化,如果Com是一个接口的话,那么
Comc=newCom()编译是通不过的。
)
每个接口编译后会生成一个单独的以.class结尾的字节码文件
接口中常量的修饰符publicstaticfinal(可以省略其中的一个、两个或全部,省略也表示是有这些修饰符)
接口中方法的修饰符publicabstract(可以省略其中的一个或两个,省略也表示是有这些修饰符)
实现接口使用关键字implements,一个类可以实现多个接口,实现接口时要重写接口中的所有方法(接口中的方法均为抽象的),除非该类是抽象类。
接口也可以被继承
接口变量只能用实现该接口的类去实例化
16.抽象类与接口的区别
abstract类中即可以有常量也可以有变量;
接口中只可以有常量,不能有变量
abstract类中可以有abstract方法也可以有非abstract方法;
接口只能是abstract方法。
17.数组
数组的声明int[]a=newint[10];
10可以是一个变量,数组也是引用型数据,通过new来分配内存的
数组的赋值参见课本
数组名.length表示数组的长度,是一个属性,不能写成a.length()
18.异常
异常捕获两种方法:
trycatch语句块或在方法定义时用throws进行抛出(throws写在方法括号的后面)
19.String类
String常用方法equals(),表示字符串的内容是否相等(Object类中也有equals()方法,它表示两个对象的内存地址是否相同,String中重写了Object类的equals()),表示两个字符串内存是否相等要用==
substring(intstart,intend)(从start到end-1,java中所有方法中出现范围的都是不包括后者的,即[start,end),另外String也是从0开始的)
String类型转intInteger.paseInt(s)
int转StringString.valueOf(i)
20.正则表达式
21.日期类
Date位于java.util包中(此包中存放了java的一些工具类)
格式化日期对象使用java.text.SimpleDateFormat
22.输入输出流
File类的对象可以指向文件或文件夹
文件若不存在可以用createNewFile()方法创建,文件夹若不存在可以用mkdir()方法创建。
输入流:
FileInputStream字节输入流FileReader字符输入流
输出流:
FileOutputStream字节输出流FileWriter字符输出流
缓冲流:
BufferedReaderBufferedWriter,不能以文件直接构造要用流对象作为构造方法的参数,BufferedReader中有一个readLine()可以一次读取一行
23.泛型
泛型不能是基本类型,只能引用型,对象、接口、数组等
不能使用在静态属性和静态方法上
是否拥有泛型方法,与其所在的类是否泛型没有关系。
泛型接口中不能用字母来修饰属性,因为属性都是static的,所以只能用它来修改方法
24.集合
ArrayList顺序表,没有指明泛型时默认为Object型数据(所有的java类型都可以),指明泛型则为具体泛型数据。
求其长度用size()方法
Map以键/值对的形式存放数据
Set里面的数据不能重复,只能用迭代器的方式进行遍历。
HashSet是通过判断hashCode()值是否相同来判断数据是否重复,
如果equals()为真则hashCode()值一样(Object中的equals()是判断地址是否一样,如果重写了equals()方法则判断内容是否一样,如String,Integer等)
TreeSet是通过加入时比较大小来生成左右子树,小的放左边,大的放右边,相等就在根,这样也保证了不会有重复值的结点,通过迭代器遍历得到的是二叉树的中序遍历序列。
25.线程
编写线程的两种方法:
继承Thread类,实现Runnalbe接口
线程的生命周期:
新建、就绪、运行、中断、死亡
线程同步:
通过锁定语句块保证在同一时刻只有一个线程读写数据,保证了数据的安全,但有时可能会产生死锁。
26.界面编程
awt或swing
java.awt或javax.swing两个包
窗体Frame或JFrame
布局:
Frame、Dialog默认为BorderLayout
Panel默认为FlowLayout
事件:
文本框、按钮、菜单项、单选按钮发生ActionEvent
选择框、下拉列表框中当选项状态改变时发生ItemEvent
三.写出下列程序的运行结果
1.
classA{
intx;
intz=100;
privateintn=20;
A(intx){
this.x=x;
}
publicvoidfun(){
System.out.println("
A类"
);
publicstaticvoidsfun(){
System.out.println("
A类的静态方法"
}
classBextendsA{
inty;
intz=200;
B(inty){
super(5);
this.y=y;
B类"
B类的静态方法"
}
publicclassTest{
publicstaticvoidmain(String[]args){
Aa=newA
(2);
Bb=newB
(1);
Aaa=newB(10);
Bbb=(B)aa;
System.out.println(binstanceofA);
System.out.println(ainstanceofB);
System.out.println(aainstanceofB);
System.out.println(aainstanceofA);
System.out.println(bbinstanceofA);
System.out.println(a.x);
System.out.println(a.z);
//System.out.println(a.n);
//不能访问
//System.out.println(a.y);
System.out.println(aa.x);
System.out.println(aa.z);
//System.out.println(aa.n);
//System.out.println(aa.y);
System.out.println(b.x);
System.out.println(b.z);
//System.out.println(b.n);
System.out.println(b.y);
System.out.println(bb.x);
System.out.println(bb.z);
//System.out.println(bb.n);
System.out.println(bb.y);
a.fun();
a.sfun();
b.fun();
b.sfun();
aa.fun();
aa.sfun();
bb.fun();
bb.sfun();
2.
Strings="
abcd"
;
Strings1=newString("
System.out.println(s.equals(s1));
System.out.println(s==s1);
s1=s+"
aa"
System.out.println(s);
3.
importjava.util.Arrays;
inta[]={1,2,3};
int[]c=Arrays.copyOf(a,5);
System.out.println(c.length);
System.out.println(Arrays.toString(c));
4.
中华人民共和国"
Strings2=s.substring(2,6);
System.out.println(s2);
5.
classFoo{
publicFoo(){
InFoo"
}
publicclassTestextendsFoo{
publicTest(){
InTest"
publicstaticvoidmain(String[]args){
Foof=newFoo();
Testt=newTest();
6.
Strings=newString("
java"
Strings1=newString(s);
Strings2="
Strings3="
System.out.println(s.equals(s2));
System.out.println(s==s2);
System.out.println(s2==s3);
7.
interfaceA{
intn=5;
classB{
intn=10;
publicclassTestextendsBimplementsA{
System.out.println(A.n);
publicstaticvoidmain(String[]args){
t.fun();
8.
A(){
System.out.print("
A"
publicclassTestextendsA{
publicstaticvoidmain(String[]args){
newTest();
newA();
9.
publicclassTest{
publicstaticvoidmain(String[]args){
StringBufferx=newStringBuffer("
X"
StringBuffery=newStringBuffer("
Y"
fun(x,y);
System.out.println(x+"
"
+y);
publicstaticvoidfun(StringBuffera,StringBufferb){
a.append(b);
a=b;
10.
classParent{
System.out.println("
parent"
staticparent"
classChildextendsParent{
child"
staticchild"
publicstaticvoidmain(String[]args){
Childc=newChild();
Parentp=(Parent)c;
p.fun();
p.sfun();
11.
classFather{
privateStringname="
father"
publicStringgetName(){
returnname;
publicclassTestextendsFather{
test"
Testtest=newTest();
System.out.println(test.getName());
12.
publicintadd(inta,intb){
try{
returna+b;
}
catch(Exceptione){
System.out.println("
catch语句"
finally{
finally语句"
return0;
和是:
"
+test.add(9,34));
13.
importjava.io.*;
publicstaticvoidmainthrowsIOException(String[]args){
Filef=newFile("
abc.txt"
FileInputStreamfis=newFileInputStream("
System.out.println(fis.read());
byteb[]=newbyte[10];
System.out.println(fis.read(b,5,2));
System.out.println(Arrays.toString(b));
System.out.println(fis.read(b));
FileOutputStreamfos=newFileOutputStream("
aaa.txt"
fos.write(50);
fos.write(b,5,2);
fo