JAVA基础知识点梳理精简文档格式.docx

上传人:b****3 文档编号:6300316 上传时间:2023-05-06 格式:DOCX 页数:35 大小:540.40KB
下载 相关 举报
JAVA基础知识点梳理精简文档格式.docx_第1页
第1页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第2页
第2页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第3页
第3页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第4页
第4页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第5页
第5页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第6页
第6页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第7页
第7页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第8页
第8页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第9页
第9页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第10页
第10页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第11页
第11页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第12页
第12页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第13页
第13页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第14页
第14页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第15页
第15页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第16页
第16页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第17页
第17页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第18页
第18页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第19页
第19页 / 共35页
JAVA基础知识点梳理精简文档格式.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JAVA基础知识点梳理精简文档格式.docx

《JAVA基础知识点梳理精简文档格式.docx》由会员分享,可在线阅读,更多相关《JAVA基础知识点梳理精简文档格式.docx(35页珍藏版)》请在冰点文库上搜索。

JAVA基础知识点梳理精简文档格式.docx

i.Eg:

Stringstr=(8>

5)?

“yes”:

“no”

8、运算符优先级最高的是:

()

9、输出换行:

System.out.println();

10、

//循环语句练习

packagettt;

publicclasstest6{

publicstaticvoidmain(String[]args){

inti=1;

intsum1=0;

for(;

i<

101;

i++){

if((i%3)!

=0){

sum1+=i;

}

}

System.out.println("

100以内不可以被3整除的数之和为:

+sum1);

11、System.out.println换行

12、System.out.print不换行

13、

importjava.util.Scanner;

publicclasstest8{

请键入一个9位以内的数:

);

Scanneraa=newScanner(System.in);

intbb=aa.nextInt();

aa.close();

bb>

9;

bb=bb/10;

i的值为"

+i);

14、数组

a)声明数组:

i.数组类型[]数组名;

ii.数组类型数组名[];

b)分配空间:

i.数组名=new数据类型【数组长度】

Eg:

socres=newint[5];

合并:

int[]socres=newint[5];

c)int[]sorces={1,2,2,3};

等价于:

int[]sorces=newint[]{1,2,2,3};

d)数组名.length获取数组的长度

e)arrays类操作java中的数组

1、排序:

arrays.sort(数组名)(升序)

2、将数组转换为字符串:

arrays.toString(数组名);

(可以实现把多个数组元素连接在一起,元素中间用逗号和空格隔开)。

f)foreach形式的for语句使用:

for(inti:

words){

System.out.print(i);

15、java中无参无返方法的调用

a)定义:

publicvoidshow(){}方法名字第一个词小写,之后首字母大写

b)调用:

i.创建类的对象

ii.对象名.方法名();

16、java中无参有返方法的调用

a)Publicintshow(){returnsum;

b)注意:

i.如果方法的返回类型为void,则方法中不能使用return返回值

ii.方法的返回值最多只能有一个,不能返回多个值

iii.方法返回值的类型必须兼容

17、方法的重载:

a)必须是在同一个类中

b)方法名相同

c)方法参数的个数、顺序或类型不同

d)与方法的修饰符或返回值没有关系

18、随机数方法:

(int)(Math.random()*100)不需要导包

19、类和对象:

a)类是模子,确定对象将会拥有的特征(属性)和行为(方法)

b)类是对象的模型,具有相同属性和方法的一组对象的集合

c)对象:

i.属性——对象具有的各种特征

ii.每个对象的每个属性都有特定值

d)类是抽象概念,仅仅是模板,比如“手机”;

对象是一个具体的实体

e)所有的java程序都是以类class为组织单元,由属性和方法组成

f)Java对象使用步骤:

i.类名对象名=new类名();

ii.Phonephone=newPhone();

iii.引用属性:

phone.screen=5;

//给screen属性赋值5

iv.引用方法:

phone.send();

//调用send()方法

20、成员变量和局部变量的区别

a)作用域不同

b)初始值不同

c)在同一个方法中,不允许有同名局部变量

d)两类变量同名时,局部变量具有更高的优先级

21、构造方法:

a)使用new+构造方法创建一个新的对象

b)构造方法是定义在java类中的一个用来初始化对象的方法

c)构造方法与类同名且没有返回值

v.构造方法的格式:

public构造方法名(){//初始化代码}

vi.Phonephone=newPhone();

vii.构造方法的名字与类名相同

d)当没有指定构造方法是,系统会自动添加无参的构造方法

e)当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法

f)构造方法的重载:

方法名相同,但参数不同的多个方法,系统自动选择

22、静态变量static:

a)Static可以修饰变量、方法、代码块

b)访问(引用):

类名.变量名hello.haha

c)定义:

publicstaticStringhaha=”imoc”;

d)Public:

表示公开的、公有的

23、静态方法:

a)访问:

类名.方法名();

b)静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。

c)如果调用非静态成员,可以通过对象来访问

d)在普通的方法中可以直接访问同类的非静态变量和静态变量

e)静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。

24、程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。

25、面向对象的三大特性:

封装、继承、多态

26、封装:

a)概念:

将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

b)好处:

只能通过规定的方法访问数据;

隐藏类的实例细节,方便修改和实现

c)实现步骤:

i.修改属性的可见性:

设为private:

privateinta;

ii.创建getter/setter方法:

用于属性的读写

iii.在getter、setter方法中加入属性的控制语句:

对属性的合法性进行判断

iv.(其实就是通过调用方法去读写属性)

v.可以通过eclipse中source菜单中selectgettersandsetterstocreate

27、java中的包:

a)作用:

管理java文件;

解决同名文件冲突

b)定义包:

package包名

i.必须放在java源程序的第一行

ii.包名间可以使用“.”隔开

iii.Eg:

com.imooc.myclass‘;

c)系统包:

Java.lang.(类):

包含java语言基础的类

Java.util.(类):

包含java语言中各种工具类

Java.io.(类):

只包含输入、输出相关功能的表

d)包的使用:

I.可以通过import关键字,在某个文件使用其他文件中的类。

Importcom.imooc.music.myclass

Ii.Java中,包的命名规范是全小写字母拼音

Iii.使用的时候不但可以加载某个包下的所有文件,也可以加载某个具体子包下的所有文件

访问修饰符的总结

访问修饰符

本类

同包

子类

其他

private

默认

protected

public

 

28、this关键字:

a)代表当前对象

i.This.属性操作当前对象的属性

ii.This.方法调用当前对象的方法

b)封装对象的属性的时候经常会使用this关键字

29、java中的内部类:

(包含内部类的类称为外部类)

a)内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类

b)内部类的方法可以直接访问外部类的所有数据,包括隐私的数据

c)内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便

d)内部类可以分为:

i.成员内部类

1.内部类中定义的方法可以直接访问外部类中的数据,不受访问控制符的影响

2.定义一个内部类对象:

内部类对象名=外部类对象.new内部类()

3.外部类不能直接使用内部类的成员和方法,可以先创建内部类的对象,然后通过内部类的对象来访问其他成员变量和方法

4.外部类和内部类具有相同的成员变量或方法,则内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用this关键字

ii.静态内部类

1.静态内部类不能直接访问外部类的非静态成员,但可以通过new外部类().成员的方式访问

2.如果外部类的静态成员与内部类的成员名称相同,可以通过“类名.静态成员”访问外部类的静态成员;

如果外部类的静态成员与内部类的成员名称不同,则可以通过“成员名”直接调用外部类的静态成员

3.创建静态内部类的对象时,不需要外部类的对象,可以直接创建内部类对象名=new内部类();

iii.方法内部类

1.方法内部类就是定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。

2.由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符和static修饰符

iv.匿名内部类

30、继承:

a)Java里都是单继承

i.子类直接拥有父类的所有属性和方法,但private除外

ii.实现代码的复用

iii.Class子类extends父类

c)Final关键字

i.修饰类:

则该类不允许被继承

ii.修饰方法:

则该方法不允许被覆盖(重写)

iii.修饰属性:

则该类的属性不会进行隐式的初始化(类的初始化属性必须有值)或在构造方法中赋值

iv.修饰变量,则变量的值只能赋一次,即常量

d)Super关键字

i.在对象的内部使用,可以代表父类对象

ii.方位父类的属性,或方法,super.agesuper.eat()

31、Object类:

a)Object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另一个类,那么这个类默认继承object类

b)Object类中的方法,适合所有子类

c)方法:

i.toString()方法:

1.在object类里面定义的tostring()方法的时候返回的对象的哈希码(对象地址字符串)(用来区分对象)

2.如:

直接输出dog对象的值:

System.out.println(dog);

3.生成:

source菜单栏——>

generatetoString()——>

生成输出属性的方法

ii.Equals()方法:

1.比较的是对象的引用是否指向同一块内存地址:

Dogdog=newDog();

2.生成:

generatehashcode()andequals()...

a)类对象:

姓名、年龄、身高...obj.getclass()

b)类的对象:

小灰、25、170...obj

3.调用:

if(dog1.equals(dog2))——>

判断两个对象是否相同

32、多态:

(继承是多态的基础)

a)引用多态:

i.父类的引用可以指向本类的对象:

animalsobj1=newanimals();

ii.父类的引用可以指向子类的对象:

animalsobj2=newdog();

iii.注意:

子类的引用不可以指向父类的对象:

dogobj3=newanimals();

b)方法多态:

i.创建本类对象时,调用的方法为本类方法

ii.创建子类对象时,调用的方法为子类重写的方法或者继承的方法

33、多态中的引用类型转换

a)向上类型转换(隐式/自动类型转换),是小类型到大类型的转换,无风险

b)向下类型转行(强制类型转换),是大类型到小类型的转换,有风险,溢出

c)Instanceof运算符,来解决引用对象时的类型,避免类型转换的安全问题

Animalanmal=dog;

//自动类型提升,向上类型转换

Dogdog2=(Dog)animal;

//强制类型转换,向下类型转换

Catcat=(Cat)animal;

//编译时Cat类型;

运行时Dog类型,报错

可以替换为:

if(animalinstanceofCat){

34、抽象类:

a)语法:

抽象类前使用abstract关键字修饰,则该类为抽象类

b)作用:

限制规定子类必须实现某些方法,但不关注实现细节

c)规则:

i.Abstract定义抽象类

ii.Abstract定义抽象方法,只有声明,不需要实现

iii.包含抽象方法的类是抽象类

iv.抽象类中可以包含普通的方法,也可以没有抽象方法

v.抽象类不能直接创建,可以定义引用变量

d)现有Shape图形类,用Rectangle矩形和Circle圆形子类,求图形的周长和面积:

Shape.java:

packagecom.amooc;

publicabstractclassShape{

publicabstractvoidzhouchang(doublel,doublew);

publicabstractvoidmianji(doublel,doublew);

publicabstractvoidzhouchang2(doubler);

publicabstractvoidmianji2(doubler);

Rectangle.java:

publicclassRectangleextendsShape{

publicvoidzhouchang(doublel,doublew){

doublez;

z=2*(l+w);

长为:

+l+"

宽为:

+w+"

的长方形周长是:

+z);

publicvoidmianji(doublel,doublew){

doublem;

m=l*w;

的长方形面积是:

+m);

publicvoidzhouchang2(doubler){

z=2*3.14*r;

半径为:

+r+"

的圆形周长是:

publicvoidmianji2(doubler){

m=3.14*r*r;

的圆形面积是:

imooc1.java:

publicclassimooc1{

Rectanglez1=newRectangle();

Shapem1=newRectangle();

Shapez2=newRectangle();

Shapem2=newRectangle();

z1.zhouchang(3,4);

m1.mianji(3,4);

z2.zhouchang2(3);

m2.mianji2(3);

35、接口:

接口可以理解为一种特殊的类,由全局常量和公共的抽象方法所组成。

类是一种实现体,而接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部数据,也不关心这些类里方法的实现细节,它只规定这些类里必须提供某些方法

b)定义:

和类定义不同,定义接口不再使用class关键字,而是使用interface关键字

c)基本语法:

[修饰符]interface接口名[extends父接口1,父接口2...]

{

零个到多个常量定义

零个到多个抽象方法的定义

接口是用来被继承、被实现的,修饰符一般建议用public

注:

不能使用private和protected修饰接口

d)接口定义常量:

接口中的属性是常量,即使定义时不添加publicstaticfinal修饰符,系统也会自动加上

e)接口定义方法:

接口中的方法只能是抽象方法,总是使用,即使定义时不添加publicabstract,系统也会自动加上

f)使用接口1:

i.一个类可以实现一个或多个接口,实现接口使用implements关键字,java中一个类只能继承一个父类是不够灵活的,通过实现多个接口可以做补充

ii.继承父类实现接口的语法为:

[修饰符]class类名extends父类implements接口1,接口2...

类体部分//如果继承了抽象类,需要实现继承的抽象方法;

要实现接口中的抽象方法...

如果要继承父类,继承父类必须在实现接口之前

Eg:

newinterfaceIjiekou(命名习惯,名字前加大写I)

g)使用接口2:

i.接口在使用过程当中,还经常与匿名内部类配合使用,匿名内部类就是没有名字的内部类,多用于关注实现而不关注实现类的名称

ii.语法格式:

Interfacei=newInterface(){

publicvoidmethod(){

System.out.println(“匿名内部类实现接口的方式”);

};

注意:

末尾以分号结束

或:

newInterface(){

PublicvoidplayGame(){

System.out.println(“使用匿名内部类的方式实现接口”);

}.playGame();

h)在接口中定义方法geta(),正确的格式是:

voidgeta();

注:

接口方法不能有方法体,同时方法的访问修饰符不能为private和protected

36、UML:

(unifiedmodelinglanguage),又称统一建模语言或标准建模语言。

是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持。

a)用例图:

(theusecasediagram)

i.用例图能够以可视化的方式,表达系统如何满足所收集的业务规则,以及特定的用户需求等信息

b)序列图:

(thesequencediagram)

i.序列图用于按照交互发生的一系列顺序,显示对象之间的这些交互

c)类图:

(theclassdiagram)

i.UML类图业务逻辑和所有支持结构一同被用于定义全部的代码结构

d)UML建模工具:

i.Visio、rationalrose、powerdesign

37、综合练习:

答答租车系统

a)功能:

i.展示所有可租车辆

ii.选择车型、租车量

iii.展示租车清单,包含:

总金额、总载货量及其车型、总载人量及其车型

b)项目分析:

i.数据模型分析

1.通过对现实世界的事与物主要特征的分析、抽象,为信息系统的实施提供数据存取的数据结构以及相应的约束

2.数据结构的组成:

操作(方法)、属性

ii.业务模型分析

iii.显示和流程分析

38、异常:

走路被树叶绊倒,吃糖饼烫后脑勺,考试快交卷了才发现反面还有题...

a)组织图:

b)处理异常:

i.try-catch以及try-catch-finally

ii.Eg:

Try{

//一些会抛出异常的方法

}catch(Exceptione){

//处理该异常的代码块

}finally{

//最终将要执行的代码

iii.

packagecom.imooc0325;

publicclasstest1{

/*

divide:

除数

result:

结果

try-catch捕获while循环

每次循环,divide减1,result=result+100/divide

如果:

捕获异常,打印输出"

抛出异常了!

,返回-1

否则:

返回result

*/

publicinttest(){

intdivide=10;

intresult=100;

try{

while(divide>

-1){

divide--;

result=result+100/divide;

returnresult;

}catch(Exceptione){

e.printStackTrace();

//打印异常具体信息

System.out.println("

循环抛出异常了!

return-1;

}finally{

S

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2