西电Java程序设计课程总结.docx
《西电Java程序设计课程总结.docx》由会员分享,可在线阅读,更多相关《西电Java程序设计课程总结.docx(83页珍藏版)》请在冰豆网上搜索。
![西电Java程序设计课程总结.docx](https://file1.bdocx.com/fileroot1/2022-11/16/d52fd26a-d69e-4d9e-80ce-cbc68086c824/d52fd26a-d69e-4d9e-80ce-cbc68086c8241.gif)
西电Java程序设计课程总结
Java程序设计课程总结
第二章面向对象程序设计
面向对象(掌握)
(1)面向对象
面向对象是基于面向过程的编程思想
(2)面向对象的思想特点
A:
是一种更符合我们思考习惯的思想
B:
把复杂的事情简单化
C:
让我们从执行者变成了指挥者
注意:
如何让我们的操作更符合面向对象思想呢?
A:
有哪些类
B:
每个类有哪些成员
C:
类及类的关系
(4)类及对象
A:
现实世界的事物
属性事物的基本描述
行为事物的功能
B:
Java语言中最基本的单位是类。
所以,我们要用类来体现事物
C:
类
成员变量事物属性
成员方法事物行为
D:
类:
是一组相关的属性和行为的集合。
是一个抽象的概念。
对象:
是该类事物的具体存在,是一个具体的实例。
(对象)
(5)类的定义及使用
A:
类的定义
成员变量
成员方法
B:
使用类的内容
a:
创建对象?
格式
类名对象名=new类名();
b:
如何使用成员变量和成员方法呢
对象名.成员变量
对象名.成员方法()
(7)内存图
(8)Java程序的开发,设计和特征
A:
开发:
就是不断的创建对象,通过对象调用功能
B:
设计:
就是管理和维护对象间的关系
C:
特征
a:
封装
b:
继承
c:
多态
第三章Java语言基础
1:
关键字(掌握)
(1)被Java语言赋予特定含义的单词
(2)特点:
全部小写。
(3)注意事项:
A:
goto和const作为保留字存在。
B:
类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记
2:
标识符(掌握)
(1)就是给类,接口,方法,变量等起名字的字符序列
(2)组成规则:
A:
英文大小写字母
B:
数字
C:
$和_
(3)注意事项:
A:
不能以数字开头
B:
不能是java中的关键字
C:
区分大小写
(4)常见的命名规则(见名知意)
A:
包全部小写
单级包:
小写
举例:
liuyi,com
多级包:
小写,并用.隔开
举例:
cn.itcast,com.baidu
B:
类或者接口
一个单词:
首字母大写
举例:
Student,Demo
多个单词:
每个单词首字母大写
举例:
HelloWorld,StudentName
C:
方法或者变量
一个单词:
首字母小写
举例:
name,main
多个单词:
从第二个单词开始,每个单词首字母大写
举例:
studentAge,showAllNames()
D:
常量
全部大写
一个单词:
大写
举例:
PI
多个单词:
大写,并用_隔开
举例:
STUDENT_MAX_AGE
3:
注释(掌握)
(1)就是对程序进行解释说明的文字
(2)分类:
A:
单行注释//
B:
多行注释/**/
C:
文档注释(后面讲)/***/
(3)把HelloWorld案例写了一个带注释的版本。
后面我们要写一个程序的过程。
需求:
分析:
实现:
代码体现:
(4)注释的作用
A:
解释说明程序,提高了代码的阅读性。
B:
可以帮助我们调试程序。
后面我们会讲解一个更高端的一个调试工具
4:
常量(掌握)
(1)在程序执行的过程中,其值不发生改变的量
(2)分类:
A:
字面值常量
B:
自定义常量
(3)字面值常量
A:
字符串常量"hello"
B:
整数常量12,23
C:
小数常量12.345
D:
字符常量'a','A','0'
E:
布尔常量true,false
F:
空常量null
(4)在Java中针对整数常量提供了四种表现形式
A:
二进制由0,1组成。
以0b开头。
B:
八进制由0,1,...7组成。
以0开头。
C:
十进制由0,1,...9组成。
整数默认是十进制。
D:
十六进制由0,1,...9,a,b,c,d,e,f(大小写均可)组成。
以0x开头。
5:
进制转换(了解)
(1)其他进制到十进制
系数:
就是每一个位上的数值
基数:
x进制的基数就是x
权:
对每一个位上的数据,从右,并且从0开始编号,对应的编号就是该数据的权。
结果:
系数*基数^权次幂之和。
(2)十进制到其他进制
除基取余,直到商为0,余数反转。
(3)进制转换的快速转换法
A:
十进制和二进制间的转换
8421码。
B:
二进制到八进制,十六进制的转换
6:
变量(掌握)
(1)在程序的执行过程中,其值在某个范围内可以发生改变的量
(2)变量的定义格式:
A:
数据类型变量名=初始化值;
B:
数据类型变量名;
变量名=初始化值;
7:
数据类型(掌握)
(1)Java是一种强类型语言,针对每种数据都提供了对应的数据类型。
(2)分类:
A:
基本数据类型:
4类8种
B:
引用数据类型:
类,接口,数组。
(3)基本数据类型
A:
整数占用字节数
byte1
short2
int4
long8
B:
浮点数
float4
double8
C:
字符
char2
D:
布尔
boolean1
注意:
整数默认是int类型,浮点数默认是double。
长整数要加L或者l。
单精度的浮点数要加F或者f。
8:
数据类型转换(掌握)
(1)boolean类型不参及转换
(2)默认转换
A:
从小到大
B:
byte,short,char--int--long--float--double
C:
byte,short,char之间不相互转换,直接转成int类型参及运算。
(3)强制转换
A:
从大到小
B:
可能会有精度的损失,一般不建议这样使用。
C:
格式:
目标数据类型变量名=(目标数据类型)(被转换的数据);
运算符的优先级(从高到低)
优先级
描述
运算符
1
括号
()、[]
2
正负号
+、-
3
自增自减,非
++、--、!
4
乘除,取余
*、/、%
5
加减
+、-
6
移位运算
<<、>>、>>>
7
大小关系
>、>=、<、<=
8
相等关系
==、!
=
9
按位及
&
10
按位异或
^
11
按位或
|
12
逻辑及
&&
13
逻辑或
||
14
条件运算
?
:
15
赋值运算
=、+=、-=、*=、/=、%=
16
位赋值运算
&=、|=、<<=、>>=、>>>=
如果在程序中,要改变运算顺序,可以使用()。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1:
运算符(掌握)
(1)算术运算符
A:
+,-,*,/,%,++,--
B:
+的用法
a:
加法
b:
正号
c:
字符串连接符
C:
/和%的区别
数据做除法操作的时候,/取得是商,%取得是余数
D:
++和--的用法
a:
他们的作用是自增或者自减
b:
使用
**单独使用
放在操作数据的前面和后面效果一样。
a++或者++a效果一样。
**参及操作使用
放在操作数的前面:
先自增或者自减,再参及操作
inta=10;
intb=++a;
放在操作数的后面:
先参及操作,再自增或者自减
inta=10;
intb=a++;
(2)赋值运算符
A:
=,+=,-=,*=,/=,%=等
B:
=叫做赋值运算符,也是最基本的赋值运算符
intx=10;把10赋值给int类型的变量x。
C:
扩展的赋值运算符的特点
隐含了自动强制转换。
面试题:
shorts=1;
s=s+1;
shorts=1;
s+=1;
请问上面的代码哪个有问题?
(3)比较运算符
A:
==,!
=,>,>=,<,<=
B:
无论运算符两端简单还是复杂最终结果是boolean类型。
C:
千万不要把==写成了=
(4)逻辑运算符
A:
&,|,^,!
&&,||
B:
逻辑运算符用于连接boolean类型的式子
C:
结论
&:
有false则false
|:
有true则true
^:
相同则false,不同则true。
情侣关系。
!
:
非true则false,非false则true
&&:
结果和&是一样的,只不过有短路效果。
左边是false,右边不执行。
||:
结果和|是一样的,只不过有短路效果。
左边是true,右边不执行。
(5)位运算符(了解)
A:
^的特殊用法
一个数据针对另一个数据位异或两次,该数不变
B:
面试题
a:
请实现两个变量的交换
**采用第三方变量
**用位异或运算符
左边a,b,a
右边a^b
b:
请用最有效率的方式计算出2乘以8的结果
2<<3
(6)三元运算符
A:
格式
比较表达式?
表达式1:
表达式2;
B:
执行流程:
首先计算比较表达式的值,看是true还是false。
如果是true,表达式1就是结果。
如果是false,表达式2就是结果。
C:
案例:
a:
比较两个数据是否相等
b:
获取两个数据中的最大值
c:
获取三个数据中的最大值
2:
键盘录入(掌握)
(1)实际开发中,数据是变化的,为了提高程序的灵活性,我们加入键盘录入数据。
(2)如何实现呢?
目前就记住
A:
导包
importjava.util.Scanner;
位置:
在class的上边
B:
创建对象
Scannersc=newScanner(System.in);
C:
获取数据
intx=sc.nextInt();
(3)把三元运算符的案例加入键盘录入改进。
3:
流程控制语句
(1)顺序结构从上往下,依次执行
(2)选择结构按照不同的选择,执行不同的代码
(3)循环结构做一些重复的代码
4:
if语句(掌握)
(1)三种格式
A:
格式1
if(比较表达式){
语句体;
}
执行流程:
判断比较表达式的值,看是true还是false
如果是true,就执行语句体
如果是false,就不执行语句体
B:
格式2
if(比较表达式){
语句体1;
}else{
语句体2;
}
执行流程:
判断比较表达式的值,看是true还是false
如果是true,就执行语句体1
如果是false,就执行语句体2
C:
格式3
if(比较表达式1){
语句体1;
}elseif(比较表达式2){
语句体2;
}
...
else{
语句体n+1;
}
执行流程:
判断比较表达式1的值,看是true还是false
如果是true,就执行语句体1
如果是false,就继续判断比较表达式2的值,看是true还是false
如果是true,就执行语句体2
如果是false,就继续判断比较表达式3的值,看是true还是false
...
如果都不满足,就执行语句体n+1
(2)注意事项
A:
比较表达式无论简单还是复杂,结果是boolean类型