Java教程专栏:https://blog.csdn.net/qq_41806966/category_9929686.html
hello,I'm shendi
经过之前的学习,已经差不多对编程 和 Java有一个大概的了解,下面来巩固并加强一下之前的知识.
目录
语法部分
首先讲一下语法
- 我们具体执行操作的代码都是在类(class)里面
- 类里面只能有属性(变量)和成员(方法,或者类)
- 类和方法都以 {} 包含,方法带(),括号内可以指定方法需要的参数
- 方法内只能包含具体执行语句
- 变量定义语法为 类型 变量名; 可以在类和方法里定义,在类里定义的叫类的属性,或者成员
- 变量为属性则可以加修饰符等关键字
-
局部和全局
- 局部在某个花括号内 {},在类里定义的变量叫做全局变量,在方法里定义的是局部变量,只能在方法内使用
- 在 if 内 定义 的变量只能在 if 内使用,这就是局部变量,内层可以使用外层,但是外层不能使用内层.
-
if语句
- 语法为 if (条件) {条件成立执行的代码}
- 可以嵌套 if,例如
- if (true) {
- if (true) {
- }
- }
- if 执行完后继续执行if后面的代码.
- 可以嵌套 if,例如
- 语法为 if (条件) {条件成立执行的代码}
-
if else
- 语法与 if相同,也可以嵌套,语法为 if (条件) {条件成立执行} else {条件不成立执行}
- 例如,嵌套
- if (true) {
- if (true) {}
- } else {
- if (true) {} else {}
- }
- if else 还可以加判断条件,例如 if(...){} else if (...) {} else if(){} 同样,也可以嵌套
- 需要注意,if...else 和 if 的不同在于,if...else条件会从上往下执行,执行到了某个条件正确时,就不会继续执行下面的else if.并且,一个 if () {} 为一条语句,一个 if () {} else {} 也为一条语句, if () {} else if () {} else if() {} 也为一条语句(连接起来的)
- 例如,嵌套
- 语法与 if相同,也可以嵌套,语法为 if (条件) {条件成立执行} else {条件不成立执行}
-
switch
- 可以轻松处理条件很多,并且条件是具体内容的情况,语法为 switch (具体的值) { case 值为1执行: break;}
- switch中的case为 switch 括号内的变量/值 为case的值时执行,语法 case 值: (这里是英文冒号)
- 需要注意的是,当执行了某个case,如果我们没有使用 break 条件的话,则会接着执行下一个case...
- 例如
-
int i = 0; switch (i) { case 0: System.out.println(0); case 1: System.out.println(1); }
输出结果为 0 1
-
- 例如
-
当需要处理的值很多时,用switch比if else 性能更快
- 可以轻松处理条件很多,并且条件是具体内容的情况,语法为 switch (具体的值) { case 值为1执行: break;}
-
三元运算符
-
等价于 if else的结构,语法
-
条件 ? 条件成立返回 : 条件不成立返回;
-
需要注意的是,三元运算符必须接收返回值,也就是必须用一个变量接收,或者在方法返回的时候使用
-
例如
-
boolean a = true ? true : false;
-
int a = true ? 1 : 2;
-
String a = true ? "我是成立" : "不成立";
-
-
-
-
顺便讲一下返回值
-
返回值
- 返回值,就是这个语句它会返回一个值(也就是语句执行完你可以获取到某个值保存在变量中)
- 例如方法a可以返回一个整数类型的 5,我们可以用以下方式获取
- int a = a();
- 变量a的值就为5;
-
方法有两种返回类型,一种是无返回值(void),一种是有返回值(类型)
-
用 void 关键字来修饰方法代表方法无返回值,例如 void a();
-
用 类型(基础类型,引用类型(类)) 来修饰方法代表方法必须返回这样一个类型的值,例如
-
int a();
-
String a();
-
Random a();
-
Scanner a();
-
-
有返回值的我们在方法执行最后必须返回指定类型的值,使用 return 关键字例如
-
返回值为int类型的方法
-
int a() { return 0; }
-
-
返回类型为 String 类的方法
-
String a() { return "String 类,注意方法的修饰和这里返回的类型要一致"; }
-
-
-
-
我们在使用 return 关键字返回后不能有任何语句(局部),例如
-
int a() { return 0; System.out.println("已经return了,我不能出现,会报错"); }
在 return 后,整个方法后面代码都不会被执行了,等于方法结束了
-
局部 return 是什么意思呢?例如
-
int a() { if (true) { return 0; } System.out.println("我是可以出现的,因为return 在上方的if语句里,在 if 的局部内"); }
-
-
-
无返回值也可以使用 return,直接用 return; 不用带返回值,例如
-
void a() { return; }
-
-
while循环
- 语法 while (条件) {条件成立执行的语句}
- 也可以嵌套其他语句,例如if,else,for等
-
for循环
- 语法 for (定义变量;循环条件;每次循环完后执行一次的代码) {条件成立执行的语句}
- 我们通常使用的是这样的 for (int i = 0;i < 10;i++) {}
- for 循环还可以这么用 for (;;) {} 这是一个死循环(一直执行的循环为死循环)
- 也可以这么用 for (;;System.out.println("输出")) {} 第三个为每次循环完执行的语句
类部分
我们学过 Scanner 类,用于接收我们的输入,和Random,用于随机数,以及String,代表字符串
这些都是类,使用 class 定义的
例如 class A {} 这个称为 类A
我们在使用类的时候需要创建其对象,语法为
类名 对象名 = new 类名();
代码规范
- 代码规范后更加便于别人和自己观看,没有规范的代码可读性很差.例如
-
public class A{int a=0;void a(){}}
上述代码只是演示,并不会报错,但是可读性很差
-
规范后代码应如下
-
public class A { int a=0; void a() { } }
-
-
- 我们将代码分级,每小一级就要加一个制表符(Tab键,通常大小是四个空格)
- 例如 class A {} 为顶级, A里面的属性,成员都小一级
- class A {
- int a;
- void a() {}
- }
- 方法里的又小方法一级
- class A {
- int a;
- void a() {
- int i = 0;
- }
- }
- if,else,while,for等带 {} 的语句代码,里面的都要比外面的小一级
- 类名大写开头 例如 class A {} 是正确的, class a{} 是不正确的(只是规范,并不会出错)
- 属性(变量)名采用驼峰式,尽量使用单词,而不是拼音,中文,第一个单词为小写,后面的每一个单词首字母大写,例如
- int num;
- int money;
- int testMoney;
- int getMoneyById;
- 花括号的前面要留一个空格,例如
- class A {}
- 不留空格是这样的 class A{}
- void a() {}
- 不留空格是这样的 void a(){}
- class A {}
- 更多的规范可以参考xxxJava规范手册
下一节学习权限修饰符