【小白学java】java语言基础(day02)

课程链接:共六天

第一天:开发环境:初识java,搭建环境
第二天:语言基础:关键字、变量、常量、运算符
第三天:数据结构:基本类型、包装类型、引用类型(数组和对象)
第四天:流程控制:分支判断、循环迭代、异常处理
第五天:API工具类:字符串方法、身份证解析
第六天:面向对象:封装、继承、抽象、接口

标识符

关键字

在这里插入图片描述
在这里插入图片描述
关键字:不允许开发者修改的标识符
自定义标识符,变量和常量,开发者可以自己来定义名称。
使用最多自定义标识符就是来标识变量和常量
1)变量:变化的量,定义好变量可以再次赋值,可以赋值多次,之前的值就被覆盖
2)常量:final 变量,只能赋值一次,不能再次赋值,再次赋值会报错!

package cn.tedu.keywords;

//创建一个测试类,测试变量和常量
public class TestVar {
	static final String s1 = null;			//定义常量,初始化值null
	
	public static void main(String[] args) {
		//定义变量:变量类型 变量名称 = 值;
		int age = 30; //定义变量age,给它初始化30;
		System.out.println(age);			//30
		
		//访问变量,改变它的值
		//Duplicate local variable age 局部变量重复定义,局部变量在方法体内只能定义一次
		age = 40;		//第一次再次赋值
		age = 50;		//第二次再次赋值
		System.out.println(age);			//50
		
		//常量在变量写法基础上,给它增加一个修饰关键字 final
		final String s = "abc";		//字符串
		System.out.println(s);
		
		//The final local variable s cannot be assigned.  分配
		// It must be blank and not using a compound assignment
		//s = "123";	//常量不能再次赋值
		System.out.println(s);
		
		//s1 = "aaa";		//The final field TestVar.s1 cannot be assigned
		System.out.println(s1);
	}
}

数学不行,能不能学好计算机软件

1)不搞大数据算法,人工智能算法,数据挖掘工程师,
就可以学的很好。这类人不需要数学功能。
只需要懂:+加、-减、*乘、/整除、 % 取余
2)大数据算法、人工智能、财务报表、数据挖掘
要求数据功底非常好,统计学,计算机专业,机械制造、数学
概率论、离散数据、高数
第一类企业需求:99%,第二类企业需求:1%,薪资高。

关系运算符结果布尔类型,布尔值:true真,false假

package cn.tedu.keywords;

//取余算术运算符
public class TestMod {
	public static void main(String[] args) {
		//经典案例:判断一个数字为偶数或者奇数
		//对2取余,如果余数0-偶数;如果余数1-奇数
		int n = 8;
		int r = n % 2;		//对n数字进行取余2
		
		//如果+不论是左边还是右边有字符串,这个+就是连接符,
		//前面整数java底层会自动转换为字符串
		System.out.println(n + "%2=" + r);
	}
}

运算符

常见运算符

在这里插入图片描述

自增自减

package cn.tedu.keywords;

//自加++和自减--
public class TestSelf {
	public static void main(String[] args) {
		int n = 10;
		//把n加1后再赋值给n,
		//赋值语句是先执行右边,计算完结果,然后结果赋值给n
		//n = n +1;		//10+1
//		n++;				//等价上面n=n+1
//		++n;				//等价上面n=n+1
//		System.out.println(n);
		
		//注意演算过程
		System.out.println(n++);			//10,先打后加,n=11
		System.out.println(++n);			//12,先加后打,n=12
		
		System.out.println(--n);				//11,先减后打,n=11
		System.out.println(n--);				//11,先打后减,n=10
	}
}

关系运算符

package cn.tedu.keywords;

//关系运算符,运算的结果布尔值
public class TestEqu {
	public static void main(String[] args) {
		int age1 = 20;
		int age2 = 10;
		
		//判断相等 ==
		System.out.println( age1 == age2 );	//true,false
		
		//判断不等 !=
		System.out.println( age1 != age2 );	//false,true
				
		//判断小于等于 <=
		System.out.println( age1 <= 18 );		//true,false
	}
}

与或非

package cn.tedu.keywords;

/*
 * 逻辑运算符:
 * 与and && 	特点:有一个为false结果就为false
 * 或or ||			特点:有一个为true结果就为tue
 * 非not ! 			特点:取反
 */
public class TestAndOrNot {
	public static void main(String[] args) {
		boolean b1 = false;		//true;
		boolean b2 = false;
		
		System.out.println( b1 && b2 );		//false,并列,false
		System.out.println( b1 || b2 );			//true,或者,false
		System.out.println( !b1 );				//false,取反,true
		
		//把所有情况穷举
		//与 &&
		System.out.println( true && true );		//true
		System.out.println( true && false );		//false
		System.out.println( false && true );		//false
		System.out.println( false && false );		//false
		
		//或 ||
		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.keywords;

/*
 * 独特:三元(三目)表达式
 * 固定结构:3个部分组成,a布尔表达式 ? b值:c值
 * 结果:如果表达式true,返回b,如果表达式false,返回c
 * 经典案例:两个值求最大值
 */
public class Test3Var {
	public static void main(String[] args) {
		int x = 300;
		int y = 100;
		//x>y	布尔表达式,它结果true/false
		int r = x>y ? x : y;
		System.out.println( r );
	}
}

三个值求最大值

package cn.tedu.keywords;

/*
 * 独特:三元(三目)表达式
 * 固定结构:3个部分组成,a布尔表达式 ? b值:c值
 * 结果:如果表达式true,返回b,如果表达式false,返回c
 * 经典案例:两个值求最大值
 */
public class Test3Var {
	public static void main(String[] args) {
		int x = 300;
		int y = 100;
		int z = 500;
		
		//1、两个值求最大值,应用一次三目表达式
		//x>y	布尔表达式,它结果true/false
		int r = x>y ? x : y;
		System.out.println( r );
		
		//2、三个值求最大值,应用两次三目表达式
		r = x>y ? x : y;		//此时r代表了x和y中的最大值
		//拿最大值r和z进行比较
		r = r>z ? r : z;
		System.out.println( r );
		
		//3、三个值求最大值,一行写完
		//r = x>y ? x : y;		//这个表达式就可以当做一个值,和z比较即可
		r = (x>y ? x : y)>z ? (x>y ? x : y) : z;		//利用小括号进行优先计算
		System.out.println( r );
	}
}

在这里插入图片描述

加等、减等、乘等、除等

package cn.tedu.keywords;

//快捷加+=、减-=、乘 *=、除 /=(整除)
public class TestYun {
	public static void main(String[] args) {
		int a = 10;
		int b = 2;
		
		//加+=
		//System.out.println( a+=b );  //12
		
		a = a+b;
		System.out.println( a );			//当前a=12
		
		//减-=
		System.out.println( a-=b );		//等价于 a-b结果赋值a a=a-b; 当前a=10
		
		//乘*=
		System.out.println( a*=b );		//当前a=20
		
		//整除 /=
		System.out.println( a/=b );		//当前a=10
	}
}

测试新方式

jUnit单元测试

在运行测试类,main很讨厌,它只能有一个。这时我们假定需要多个方法去执行,如果写成多个方法,太麻烦。把不用代码屏蔽,打开其他代码,来回屏蔽,也不方便。

引入新的技术,可以在一个类中有多个测试方法,每个方法独立。这个技术jUnit 单元测试。

开发步骤:
1)在项目中引入jUnit支持 (一个项目中只需要一次)
2)在类中导包import。org.junit.Test
3)在指定的方法上戴个帽子:@Test 注解
2和3步骤,需要单元测试junit,就得导入
4)运行 java junit
可以运行所有方法,也可以指定单个运行

jUnit执行一个类的多个方法

package cn.tedu.keywords;

//调用@Test注解@interface标识
//导包语句可以自己写
import org.junit.Test;


//这个类单元测试类
//写@Test注解,eclipse会提示我们导入jar,里面很多class,Test.class
/*
 * 有多个方法,任何空白地方右键运行junit test
 * 会执行哪个方法? 都执行
 * 会全部执行吗? 是
 * 有顺序吗?junit没有顺序
 */
public class TestSelfUnit {

	
	@Test	//导包过了,无需再次导入import写一次多次调用
	public void sub() {
		int i = 10;
		System.out.println( "sub " + i-- );
	}
	
	
	//规定:单元测试方法必须开放public,无返回值void,必须无参
	@Test  //这个注解必须放在方法上面
	public void add() {
		int i = 10;
		System.out.println( "add " +i++ );
	}	
}

  • 22
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值