202106小白训练营day02-java基础语法
Posted 长安紫薯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了202106小白训练营day02-java基础语法相关的知识,希望对你有一定的参考价值。
编程语言最重要是编程思想
基础语法
关键字:在java语言中写死的单词就叫关键字,这些是Java语言固化,内置的,不允许改变。这些关键字我们不能去定制。java中定义50+个关键字。
标识符:在java语言中开发者自己定义名称,这个名称就叫标识符。
变量和常量:自定义变化的量,常量不能变化。
运算符:+、-、*、/、%取余
jUnit :单元测试,main
关键字
java中规定好了关键字,了解所有的关键字,必须背过。
标识符
自己来定义名称
1)简单名称:单个字母 a,b,x,y,a1,a2
2)复杂名称:驼峰规则 name,age,FirstName,lastName
3)特殊字符:a$,a_name
变量
变化的量
常量
package cn.tedu.syntax;
//变量和常量练习
public class Var {
public static void main(String[] args) {
// 1.定义变量
int a = 0; //基本类型变量,必须设置初始化值
//The local variable a may not have been initialized
//局部变量,在方法体内定义变量,局部变量必须初始化
System.out.println(a); //0
// 2.变量赋值
//Duplicate local variable a
//局部变量不能重复定义
a = 10; //再次赋值,原有的值被覆盖
System.out.println(a); //10
// 3.调用变量
a = 20;
System.out.println(a);
// 4.修改变量的值
a = 300;
System.out.println(a);
//常量
//The final local variable b cannot be assigned.
//局部变量b,不能被再次设置的新的值
//It must be blank and not using a compound assignment
//必须是空,不能是表达式
final int b = 10;
//b = 20;
System.out.println(b);
//什么时候使用常量,习惯全大写,多个单词使用下划线隔开
final double PI = 3.14; //圆周率
final double x = 6.18; //黄金分割率
final String SYS_NAME = "京淘电商";
}
}
运算符
数据进行处理,数学计算,赋值,比较。。。
算术运算符
package cn.tedu.syntax;
//算术运算符
public class Arth {
public static void main(String[] args) {
// 加法
int a = 10;
int b = 20;
// +在Java中赋予2个含义,数学加号,字符串拼接符
System.out.println("a+b=" + a + b);
// a+b=1020
System.out.println("a+b=" + (a + b));
// a+b=30
// 减法
// The operator - is undefined for
// the argument type(s) String, int
// 操作符-,不能执行字符串和整数减法
// System.out.println("a-b=" + a-b);
System.out.println("a-b=" + (a - b));
// 乘法,*的优先级高于+字符串连接符,所以不需要小括号
System.out.println("a*b="+ a*b);
// 整除,它不能支持辅导数,得到结果为0,而不是0.5
System.out.println("a/b="+ a/b);
}
}
取余
package cn.tedu.syntax;
//取余 %
public class Mod {
public static void main(String[] args) {
//一个数字是偶数还是奇数
//余数0偶数,余数1是奇数
int n = 9;
System.out.println("余数:"+ n%2);
}
}
自加自减
package cn.tedu.syntax;
//java特点自加++,自减--
public class Self {
public static void main(String[] args) {
// 自加++,加1
int x = 10;
// x++; //简写
x = x + 1;
System.out.println(x);
int y = 10;
System.out.println(y++); // 11,10,先打后加
System.out.println(++y); // 12,12,先加后打
int z = 10; //演算的过程
System.out.println(++z); // 先加后打,11
System.out.println(z++); // 先打后加,11
System.out.println(--z); // 先减后打,11
System.out.println(z--); // 先打后减,11
}
}
相等不等
package cn.tedu.syntax;
//比较运算符
//比较结果布尔值,只可能是两个结果
//要么true,要么false
public class Equ {
public static void main(String[] args) {
int x = 10;
int y = 20;
//是否相等
//==代表比较运算符,结果布尔值
//=赋值语句
System.out.println(x==y); //false
System.out.println(x=y); //20
//不等
System.out.println(x==y); //true
System.out.println(x!=y); //false
//取反
boolean b = true;
System.out.println(b); //true
System.out.println(!b); //false
System.out.println(!!b); //true
}
}
比较
package cn.tedu.syntax;
//与或非案例,关系运算符
/*
* 布尔表达式进行运算
* 逻辑短路与
* 逻辑短路或
*/
public class Compare {
public static void main(String[] args) {
//与特点:有一边不成立就为false
System.out.println(true && true); //true
System.out.println(true && false); //false
//Dead code?这个代码不会被执行
//与前面布尔结果为false,后面的代码已经不用判断
System.out.println(false && true); //false
System.out.println(false && false); //false
//或特点:有一边为成立就为true
System.out.println(true || true); //true
System.out.println(true || false); //true
System.out.println(false || true); //true
System.out.println(false || false); //false
}
}
三目表达式求最大值
package cn.tedu.syntax;
//java中唯一一个三个变量计算,三目表达式(三元)
//格式:布尔表达式 ? 第一个值 : 第二个值
//返回值:当布尔表达式结果为真true,返回第一个值
// 当布尔表达式结果为假false,返回第二个值
public class ThreeVar {
public static void main(String[] args) {
//两个值求最大值
int x = 100;
int y = 2000;
//三目表达式
int max = x>y ? x : y;
//字符串内容原样输出
System.out.println("x="+x+",y="+y+", 最大值:"+max);
//三个值求最大值,两次使用三目表达式来实现
int z = 300;
//方法1,使用两次三目表达式方式实现
max = max>z ? max : z;
System.out.println("x="+x+",y="+y+",z="+z+", 最大值:"+max);
//方法2,一行三目表达式实现
max = (x > y ? x : y) > z ? (x > y ? x : y) : z;
System.out.println("最大值:" + max);
}
}
赋值运算符
package cn.tedu.syntax;
//赋值运算符,+=、-=、*=、/=
public class Equ2 {
public static void main(String[] args) {
// +=
int a = 10;
int b = 20;
// a=a+b
System.out.println(a += b); // a=a+b // 30
System.out.println(a); // 30
System.out.println(b); // 20
//换行
System.out.println();
System.out.println(a -= b); // a=a-b //10
System.out.println(a); // 10
System.out.println(b); // 20
System.out.println();
System.out.println(a *= b); // a=a*b //200
System.out.println(a); // 200
System.out.println(b); // 20
System.out.println();
System.out.println(a /= b); // a=a/b //10
System.out.println(a); // 10
System.out.println(b); // 20
}
}
单元测试
package test;
//导包可以手写
import org.junit.Test;
/*
* 要求:
* 1、测试有单独包路径
* 2、测试类的名称,习惯前面加Test
* 3、JUnit单元测试是第三方技术 jar包(是class类集合),
* import java不会自动加载的,需要自己去加载
* a.找到jar(eclipse直接提供)
* b.import导包
* c.测试方法多个,戴帽子 @Test 注解
* 4、测试方法
* a.必须是公开 public
* b.没有返回值 void
* c.没有参数
* d.多个方法执行是没有顺序的
*/
public class TestJUnit {
// 主方法
public static void main(String[] args) {
System.out.println("main");
}
// 单元测试方法
@Test
public void junit() {
System.out.println("junit");
}
}
测试加等减等乘等除等
package test;
import org.junit.Test;
/*
* 注意:
* 默认运行单元测试方法会执行这个类中的所有的带帽子@Test方法
* 能否只执行一个方法?双击选中某个方法名,右键执行
* 能否执行指定多个方法?只能全部,要么只是一个
* 执行方法没有先后顺序
*/
public class TestEqu2 {
@Test //加等
public void add() {
int a = 10;
int b = 20;
System.out.println("a+=b:"+(a+=b)); //30
}
@Test //减等
public void sub() {
int a = 100;
int b = 200;
System.out.println("a-=b:"+(a-=b));
}
@Test //乘等
public void multi() {
int a = 1000;
int b = 10;
System.out.println("a*=b:"+(a*=b));
}
//编译检查的是语法,逻辑错误,
//编译器无法判断,只能开发者判断
@Test //除等
public void div() {
int a = 2000;
int b = 100;
System.out.println("a/=b:"+(a/=b));
}
}
测试三目表达式
package test;
import org.junit.Test;
//单元测试三目表达式
public class TestThreeVar {
@Test
public void threeVar() {
//格式:布尔表达式?值1:值2
int x = 100;
int y = 200;
int max = x<=y ? y : x;
System.out.println("最大值:"+max);
}
}
测试自加自减
package test;
import org.junit.Test;
//测试自增和自减
public class TestSelf {
@Test // 自增
public void add() {
int i = 10;
// 屏蔽多行代码,一起注释快捷键:Ctrl+/
// i = i + 10; // 步长10
// i = i + 10; // 步长10
// i = i + 10; // 步长10
// i = i + 10; // 步长10
i++;
i++;
++i;
++i;
System.out.println(i); // 14
}
@Test
public void sub() {
int i = 10;
// 步长1
i--;
--i;
i--;
--i;
System.out.println(i); // 6
}
}
小结
1)关键字:每个语言定死部分,固化,开发者不是随意使用,使用在固定地方
修饰类:public static class interfac abstract
关键字全小写,语法高亮
2)标识符:语言开发者可以自行规定的内容,变量名称,类名,项目名称,不能和关键字冲突,3个特点,简单(i,j,k,m,n,a,b,c,x,y,z)一个字母,小写,多个单词(toString 小驼峰,ThreeVar大驼峰),特殊($,_)
3)变量:计算机就是发挥它快速反复计算,大量计算,大数据,数据就存在变量中。
4)常量:一旦初始化后就不能再次赋值。final int i;声明 i = 10;初始化,只能初始化一次。
5)变量只是用来存储数据(内存)光存数据到内存中是没有任何意义,目的编程,实现用户业务逻辑,a+b,怎么去计算最终实现业务逻辑,通过运算符!
6)运算符
7)单元测试jUnit
灵活在哪里?main方法一个类只能有一个唯一的,单元测试方法可以支持多个
main方法要执行多个测试,就得相互屏蔽代码;
jdk自己出的测试工具 assert 断言,被junit替代
8)怎么使用junit
a. 找到jar包,eclipse自带junit
b. 导包 import org.junit.Test;(只导入具体某个类) import org.junit.*; (通配符,包路径下所有的类)
c. 标识,戴帽子 @Test 注解
9)junit单元测试类有什么约束?
以上是关于202106小白训练营day02-java基础语法的主要内容,如果未能解决你的问题,请参考以下文章
202106小白训练营day04-java程序结构分支循环异常
202106小白训练营day01-java第一个案例HelloWorld