Java课程知识点复习总结.docx
《Java课程知识点复习总结.docx》由会员分享,可在线阅读,更多相关《Java课程知识点复习总结.docx(12页珍藏版)》请在冰豆网上搜索。
Java课程知识点复习总结
Java是一种解释性的语言
垃圾收集机制:
自动地不定期检查内存,自动删除垃圾。
JavaApplication(Java应用程序)
Java程序可以分为两类
JavaApplet(Java小程序)
Java由类组成,
类是Java的基本组成单位。
JavaApplication,
Java应用程序的主要特点是:
有一个或多个类组成,其中必有一个定义了main()方法。
main()方法是自动执行的类方法,是Java应用程序运行的起始点。
定义了main()方法的类称之为主类。
独立应用程序必须包含如下格式声明的主类和main()方法
publicclassMainClass{
publicstaticvoidmain(String[]args)
{//writecodehere
}}
编译、执行命令
用”javac”命令编译源文件
用”java”命令解释执行类文件
标识符只能由英文字母、下划线、美元符号($)和数字组成,且第一个字符不能是数字。
标识符必须是一个连续的整体,中间不能有空格。
关键字:
事先定义的,有特别意义的标识符,又叫“保留字”
abstractbooleanbreakbytecase
catchcharclasscontinuedefault
dodoubleelseextendsfinal
finallyfloatforifimplements
importinstanceofintinterfacelong
nativenewpackageprivateprotected
publicreturnshortstaticsuper
switchsynchronzizedthisthrowthrows
transienttryvoidvolatilewhile
基本数据类型
类型
关键字
范围/格式
说明
逻辑型
boolean
8位二进制
逻辑值(true/false)
文本类型
char
16位Unicode字符集
单字符
String
字符串
整型
byte
short
int
long
8位二进制
16位二进制
32位二进制
64位二进制
字节型整数-128~+127
短整型
整数
长整型
浮点型
float
double
32位
64位
单精度浮点数
双精度浮点数
类的三大特性:
1.封装性
2.继承性
3.多态性.
声明类的对象
类的对象就是以该类为模板创建出来的一个具体的实例,实例是类的一个特定实体,因为它区别于类的所有其他实例。
声明一个类的对象使用语句格式:
类名实例名(如:
Animalhorse;)
classmyClass=newclass();
创建对象:
Java语言使用new操作符为对象创建内存空间。
即用”new”创建类的对象。
例如,为Animal类创建一个对象horse,可以这样做:
Animalhorse1=newAnimal
(2);
Animalhorse2=horse1
构造方法:
是类在创建对象时,new动作要执行的方法。
构造方法带参数,类的创建也必须带参数。
publicclassAA
{publicAA(intm)
{}
}
AAa=newAA(x);//x为给构造函数传递的参数
封装的四个关键字:
1.public表明该成员变量可被类外的程序访问;
访问修饰符2.protected表明该成员变量只能被雨当前类同处一个
包中的类或当前类的子类访问;
3.private表明该该成员变量只能在该类的内部被访问。
4.static说明该成员变量时一个类变量,类变量为一个类所具有。
This变量。
含义:
this表示的是当前类的当前对象本身。
准确地说,this代表了当前对象的一个引用。
对象的引用可以理解为对象的一个别名,通过引用可以顺利地访问到该对象,包括访问对象的成员变量、调用对象的方法等。
但是对象的引用不能作为内存地址使用,它仅仅是作为对象的名字(或别名)来使用。
对象:
用this关键字可以调用到当前对象的方法或者用当前对象的成员变量。
在构造函数重载时,可以使用this(parameterList);来调用相应参数的构造方法。
使用this变量调用基本构造方法时,必须出现在当前构造方法的第一行。
重载是Java提供的一种多态机制,它允许在同一个类中声明多个名称相同的方法,但这些方法必须有不同的形式参数列表(参数的个数、类型或顺序不同),这就是方法的重载。
函数重载是指同一个函数名可以对应着多个函数的实现。
每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。
这就是函数重载的概念。
函数重载在类和对象的应用尤其重要。
构造方法
构造方法的方法名与类相同;
构造方法没有返回值(没有返回值和返回值是void是不一样的);
完成赋值。
修饰符
修饰符分为:
访问控制符和非访问控制符。
修饰符修饰的对象分为两个层次:
一个是类层次,一个是类的成员层次。
在类这个层次的修饰会对成员层次的修饰有一定的影响。
1类的继承中,子类和父类的关系
共享性:
即子类可以共享父类的公共属性和方法。
差异性:
即子类和父类一定会存在某些差异,否则就应
父类、子类之间的对照关系该是通一个类。
层次性:
即由Java规定的单继承性,每个类都处于继承关系树种的某一个层面。
Java要求生命的每个类都有父类,当没有现实指定父类时,父类隐含为java.lang包中的Object类。
一个父类可以同时拥有多个子类,这时这个父类实际上是所有子类的公共属性和方法的集合,而每个子类则是父类的特殊化,是在公共属性的基础上的功能扩展。
Java不支持类的多重继承,只支持类的单继承,即每个子类只能有一个直接父类,类的层次为树状结构,Object类为树的根节结点。
2什么是类的多态,什么体现了类的多态性?
多态性实质同名的不同方法在程序中共存。
为同一个方法定义几个版本,运行时根据不同的情况绑定不同的版本并执行。
调用者只需要使用同一个方法名,系统就会根据不同的情况,调用相应的不同方法,从而实现不同的功能。
多态性的实现有两种:
(1)覆盖实现多态性:
通过子类对父类方法的重写来实现。
使用时注意,在子类重写父类方法是,要求与父类中的方法的原型(包括参数个数、类型、顺序)完全相同。
程序在运行时将通过对象的不同类型,绑定到相应的方法。
(2)重载实现多态性:
通过定义类中的多个同名的不同方法来实现。
程序运行时是根据参数列表的不同来区分不同的方法,从而绑定到相应的方法上。
3this和super的作用是什么?
成员函数中定义了和成员变量中相同的变量时,引用成员变量要用this.
构造函数中调用同一个类的其他构造函数时用this
子类中覆盖了父类成员变量或成员函数时,在子类中调用父类的变量或函数要用super
子类的构造函数里调用直接父类的构造函数用super,不能用于调用间接父类的构造函数。
4什么是构造方法,其功能是什么?
定义一个新的类之后,就可以创建这个类的对象,创建一个类的对象的过程称为类的实例化,对象就是以类为模板创建的具体事例。
同一个类的不同对象分别封装有相同的变量(但彼此之间的储存空间是独立的),并共享类的实例方法。
其功能是对类的对象完成赋值
5
classPerson
{
Stringname,department;
intage;
publicPerson(Stringn){name=n;}
publicPerson(Stringn,inta){name=n;age=a;}
publicPerson(Stringn,Stringd,inta)
{
(1)
department=d;
}
publicvoidshow()
{
System.out.println(name+age);
}
}
publicclassTeacherextendsPerson
{
intsalary;
publicvoidshow()
{
(2)
System.out.println(salary);
}
}
下面哪个可以添加到构造方法中?
APerson(n,a);
Bthis(Person(n,a));
Cthis(n,a);
Dthis(name,age);
下面哪个可以添加到
(2)中?
Ashow();
Bthis.show();
Cperson.show();
Dsuper.show();
6
publicclassPerson
{
publicintaddValue(inta,intb)
{
ints=a+b;
returns;
}
}
classChildextendsPerson
{
}
下面的哪些方法可以加入类Child
AintaddValue(inta,intb)
BpublicvoidaddValue()
CpublicvoidaddValue(inta)
DpublicvoidaddValue(inta,intb)throwsMyException
7编写程序,定义一个类shape表示一个二维图形,方法area面积
和perimeter(周长)。
定义一些二维图形,例如矩形,三角形,圆形,它们应是
shape的子类,
classShape{
intl,w;
}
classAngleextendsShape{
Angle(intl,intw){
this.l=l;
this.w=w;}
voidarea(){
floats;
s=l*w*0.5f;
System.out.println("三角形面积:
"+s);
}
}
classRectextendsShape{
Rect(intl,intw){
this.l=l;
this.w=w;
}
voidarea(){
ints;
s=l*w;
System.out.println("矩形面积:
"+s);
}
voidlen(){
intc;
c=l+l+w+w;
System.out.println("矩形周长:
"+c);
}
}
classCircleextendsShape{
Circle(intl,intw){
this.l=l;
this.w=l;
}
voidarea(){
doubles;
s=l*l*3.14;
System.out.println("圆面积:
"+s);
}
voidlen(){
doublec;
c=2.0*l*3.14;
System.out.println("圆周长:
"+c);
}
}
publicclassNO7{
publicstaticvoidmain(String[]args){
Anglelw=newAngle(3,4);
lw.area();
Rectl=newRect(3,4);
l.area();
l.len();
Circlec=newCircle(3,4);
c.area();
c.len();
}
}
8编写程序,定义一个Person类,含有姓名name和年龄age两个成员变量。
二个构造方法,分别带一个参数
和两个参数,完成赋值功能。
一个输出show()方法,输出姓名和年龄。
定义一个Student,含有成绩g成员变量,一个输出方法show(),输出姓名,年龄,和成绩。
publicclassNo8{
publicstaticvoidmain(String[]args){
Studentstudent=newStudent("a",12,1);
student.showInfo();
}
}
classPerson{
protectedStringname;
protectedintage;
Person(Stringname,intage){
this.name=name;
this.age=age;
}
voidshowinfo(){
System.out.println("Name:
"+name+"\nage"+age);
}
}
classStudentextendsPerson{
intgrade;
Student(Stringname,intage){
super(name,age);
this.grade=1;
}
Student(Stringname,intage,intgrade){
super(name,age);
this.grade=grade;
}
voidshowInfo(){
System.out.printf("Name:
"+name+"age"+age+"grade"+grade);
}
}
1构造函数的作用是什么?
是一种特殊的方法,主要用来在创建对象时初始化对象,即为对象成员变量赋值。
2定义一个类score,它含有私有成员变量english(英语分数),公有成员方法setScore()用来设置english的值,printScore()用来输出english的值。
在主类中定义类score的两个对象stu1,stu2,其英语成绩分别为85.5和93.5,输出这两个分数
3下面是一个计算器类的定义,请完成该类的实现
classCounter
{
intvalue;
publicCounter(intnumber)
{value=number;
}
publicvoidincrement()//给原值加1
{value=value+1;}
publicvoiddecrement()//给原值减1
{value=value-1;}
publicintgetValue()//返回计数值
{returnvalue;}
publicvoidshow()//显示计数值
{System.out.println(value);}
}
publicclassTest1{
publicstaticvoidmain(String[]args){
Countercon=newCounter(4);
con.increment();
con.show();
}
}
4定义一个类box,box的构造方法给盒子的边赋值(三个),用box类计算立方体的体积,并包含成员方法show()用来输出体积。
注意:
利用构造方法重载
classBox{
intw,h,l;
floatv;
voidshow(){
System.out.println("体积:
"+v);
}
voidver(){
v=w*h*l;
}
Box(intl,intw,inth){
this.l=l;
this.w=w;
this.h=h;
}
Box(intl,intw){
this.l=l;
this.w=w;
this.h=1;
}
}
publicclassTest{
publicstaticvoidmain(String[]args){
Boxbox=newBox(3,4,5);
box.ver();
box.show();
}
}