forked from danggiet/note-CoreJava
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnotes-concluded-from-imooc
More file actions
261 lines (209 loc) · 6.78 KB
/
notes-concluded-from-imooc
File metadata and controls
261 lines (209 loc) · 6.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
//本篇是imooc上面的笔记
##JAVA的一些概念
JVM JAVA virtual machine ,包括编译器和解释器
JDK JAVA development kit
JRE JAVA runtime environment
java se java standard edition
java me java mobile edition
java ee java enterprise edition
---
##java 的运行过程
1. java的源代码文件以 .java 结尾
2. 使用 javac 命令 ,调用complier 编译源码,生成字节码文件
3. 字节码以 .class 为扩展名 ,**是2进制文件**
4. 使用 java 命令,调用解释器(interpreter) ,解释运行字节码文件
`java 命令后面不能跟字节码文件后缀`
---
##java 中的关键字和标志符
关键字省略
标志符命名规则:
* 字母、数字、下划线、美元符组成
* 不能以数字开头
* 区分大小写
`变量名有多个单词组成,习惯性第一个单词首字母小写,第二个大写如:`myAge``
---
##java的数据类型 浅谈
* 基本数据类型
* 数值型
1. 整型
2. 浮点型
>float变量赋值时要加f,否则默认是double类型
* 字符型
* 布尔型
* 引用数据类型
* 类class
* 接口 interface
* 数组
基本数据类型存的是数据本身,引用数据类型存的是数据地址
- [x] 这里char 是否属于整型呢?
---
##变量使用规则
* 使用前必须声明
* 声明的同时可以赋值(即可以初始化变量)
---
java 中的强制类型转换
在变量前加类型关键字即可 int x=10;double y=x;
如果将大类型的数据转换成小类型的,将进行截尾操作
---
##java中的常量
使用final 声明:
final int PI=3.14
---
##逻辑运算符
表达式 表达式的结果
a&&b a与b都为真结果为真
a||b a与b有一个为真即为真
!a 取反
a^b 一真一假才为真
---
##三元运算符:条件表达式 ?结果1:结果2 .
---
##优先级
!相等不等操作符 抑或 与 或 三元 赋值运算符
---
##if条件语句
if简单语句
```
if(){
}; 同样如c中while,若if中的执行语句只有一条,可以省略大括号
```
多重if语句
```
if(条件1){
代码块1
}else if(条件2...n){
代码块...
}else{
代码块;
}
```
嵌套if
if(父条件){
if(子条件){子条件成立时的代码块;}
else {子条件不成立时的代码块;}
}
else{父条件不成立时的代码块;此处还可多重if}
---
##switch 语句
* 适用于对表达式进行***等值判断***
```
switch(表达式){
case 值1;
代码块1;
break;
case 值2;
代码块2;
break;
...
...
default:
代码块;
}
```
该结构中代码块不加{}是因为,
>当 switch 后表达式的值和 case 语句后的值相同时,从该位置开始向下执行,直到遇到 break 语句或者直到switch语句块结束;
>如果没有匹配的 case 语句则执行 default 块的代码。
---
##while语句
while(){};
do{}while()
---
##for循环
for(循环变量初始化;循环条件;循环变量改变){};
>用分号隔开,
>这里才看到for循环语句里面可以循环变量初始化;
>省略循环变量初始化,则需要在for循环语句之前进行变量初始化;
>省略循环变量改变,则需要在循环体内改变循环计数的值;
---
##循环跳转语句break
即跳出循环后面大括号里面的执行代码块,**执行循环之后的内容**;
##循环跳转语句continue
遇到continue结束本次循环,直接执行下一次循环;
for(int i=1;i<=10;i++){
if (i%2!=0){continue;}
System.out.println(i);
}
`输出10以内的偶数`
---
##java多重循环
三种循环可以自身嵌套,也可以相互嵌套,构成多重循环。
在二重循环中,外层循环每执行一次,内层循环要执行完一圈。
常见于:用外层控制行数,内层控制每行打印的字符数.
---
##数组
数组元素通过下标访问,下标从0开始,
1. 声明数组:
类型关键字 数组名 [];
`int scores []`;
2. 分配空间:
数组名=new 关键字 [数组长度];
`scores=new int [5]`
同样可以将上面两步合并,声明和分配空间一起完成
`int scores []=new int[5]`
3. 赋值,单个赋值:scores[0]=50;scores[5]=60;
初始化:
int scores[]={x0,x2,x3,x3,x4,x5};
---
##使用循环打印数组的值:
int scores[]={88,99,108,112};
for(int i=0;i<***scores.length***;i++){
System.out.println("scores[]第"+(i+1)+“个元素的值是:"+scores[i]);
}
`这里i从0 开始 `
---
##Arrays类的方法
>Arrays类在java.util包中
1. 排序 Arrays.sort(scores);
2. 元素转换成字符串 Arrays.toString(scores);
使用类前必须先导入包:
import java.util.Arrays
----
##使用foreach遍历数组
for(int 随便起名:scores){System.out.println(随便起名);}
`对于scores中的每一个整数`
---
##java中的二维数组
1. 声明: int scores[][];
2. 分配空间: scores=new int[行的个数][列的个数];
同样,可以合并: int scores[][]=new int[3][4];
3. 赋值 分别为每个元素赋值
初始化:
int scores[][]={score[0][0],score[1][0],,,)}
---
#对象和类
类是具有相同特征的对象的集合
这里的特征主要指属性和方法
所有的java程序都以类class为单位
##类的定义和函数的定义
```
定义一个类:
修饰符 类的关键字class 类名{}
定义一个函数:
修饰符 返回值类型 方法名 (参数列表){}
```
`对比:类没有返回值,没有参数,需要用class声明`
```
函数的重载 :
一个类中,两个函数同名不同参,调用时java会根据参数的类型匹配方法。两函数构成重载。
```
<mark>这里,方法的定义要修饰符吗? 教程上直接是方法的返回值类型
所谓的方法即是函数
###局部变量和成员变量
类里面定义的变量称成员变量,作用于整个类;
函数里面定义的变量称局部变量,作用于当前函数
* java会给成员变量赋一个初始值(0),而不会给局部变量赋初始值
* 当局部变量与成员变量同名时,局部变量的优先级大于成员变量
* 在同一个方法中,不允许有同名的变量,在不同的方法中,允许有同名的局部变量
###构造函数
类名()是一个构造函数,完整的写法是 `类名(){}`
A(){} 是一个构造函数,**构造函数要与类名相同** 没有写返回值
普通函数 都写返回值
####类实例成对象
类的实例化:
类名 对象名 = new 类名()
Telphone samsung=new Telphone()
>给对象的属性赋值
>对象名.属性
>samsung.screen=4.7
对象调用函数 a.fundefine()
如果在调用的时候,原来没有写构造函数