JAVA基础知识点梳理精简.docx
- 文档编号:10307187
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:35
- 大小:540.40KB
JAVA基础知识点梳理精简.docx
《JAVA基础知识点梳理精简.docx》由会员分享,可在线阅读,更多相关《JAVA基础知识点梳理精简.docx(35页珍藏版)》请在冰豆网上搜索。
JAVA基础知识点梳理精简
JAVA基础知识点梳理(重点笔记)
1、标识符规则
a)可以由字母、数字、下划线、美元符$组成,不能以数字开头
b)不能是java的关键字和保留字
c)严格区分大小写,且尽量见名知意
2、变量
publicclasstest{
publicstaticvoidmain(String[]args){
Stringlove="imooc";
System.out.println("变量love的内容是:
"+love);
love="iloveimooc";
System.out.println("重新赋值后变量love的内容是"+love);
}
}
3、变量命名习惯:
a)第一个单词的首字母小写,其后单词的首字母大写(骆驼式),myAge
b)变量命名时,尽量简短且能清楚的表达变量的作用,见名知意,如stuName
Ps:
java变量长度没有限制,但是严格区分大小写
4、数据类型
a)int:
4个字节
b)Double:
8个字节
c)Float:
4个字节float变量赋值在数值后添加字母ffloathe=12.2f;
d)Char:
2个字节char变量赋值使用单引号’’
e)Boolean:
1个字节取值只能为:
true和false
f)String:
引用数据类型
5、Java常量的应用:
a)Final数据类型常量名=值;
b)常量名一般使用大写字符
6、逻辑运算符:
a)^:
异或有且只有一个为true则返回true
7、条件运算符:
a)()?
正确表达式:
错误表达式
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、
packagettt;
importjava.util.Scanner;
publicclasstest8{
publicstaticvoidmain(String[]args){
inti=1;
System.out.println("请键入一个9位以内的数:
");
Scanneraa=newScanner(System.in);
intbb=aa.nextInt();
aa.close();
for(;bb>9;i++){
bb=bb/10;
}
System.out.println("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里都是单继承
b)好处:
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.生成:
source菜单栏——>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运算符,来解决引用对象时的类型,避免类型转换的安全问题
i.Eg:
Dogdog=newDog();
Animalanmal=dog;//自动类型提升,向上类型转换
Dogdog2=(Dog)animal;//强制类型转换,向下类型转换
Catcat=(Cat)animal;//编译时Cat类型;运行时Dog类型,报错
可以替换为:
if(animalinstanceofCat){
Catcat=(Cat)animal;
}
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:
packagecom.amooc;
publicclassRectangleextendsShape{
publicvoidzhouchang(doublel,doublew){
doublez;
z=2*(l+w);
System.out.println("长为:
"+l+",宽为:
"+w+",的长方形周长是:
"+z);
}
publicvoidmianji(doublel,doublew){
doublem;
m=l*w;
System.out.println("长为:
"+l+",宽为:
"+w+",的长方形面积是:
"+m);
}
publicvoidzhouchang2(doubler){
doublez;
z=2*3.14*r;
System.out.println("半径为:
"+r+",的圆形周长是:
"+z);
}
publicvoidmianji2(doubler){
doublem;
m=3.14*r*r;
System.out.println("半径为:
"+r+",的圆形面积是:
"+m);
}
}
imooc1.java:
packagecom.amooc;
publicclassimooc1{
publicstaticvoidmain(String[]args){
Rectanglez1=newRectangle();
Shapem1=newRectangle();
Shapez2=newRectangle();
Shapem2=newRectangle();
z1.zhouchang(3,4);
m1.mianji(3,4);
z2.zhouchang2(3);
m2.mianji2(3);
}
}
35、接口:
a)概念:
接口可以理解为一种特殊的类,由全局常量和公共的抽象方法所组成。
类是一种实现体,而接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部数据,也不关心这些类里方法的实现细节,它只规定这些类里必须提供某些方法
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 基础 知识点 梳理 精简