- 今天的前部分内容主要是基本运算符和逻辑运算符,这些运算符是整个我们以后代码之路经常用到的东西,所以一定要熟练的掌握能够熟练地运用。首先是四则运算,直接上代码:
package cn.tedu.study1; /*本类用于测试取余和自增自减运算符*/ public class Day03TestOperator { //创建程序的入口函数main public static void main(String[] args) { /* + - / * 基本四则运算*/ //测试与取余 System.out.println(25/10); // 取出十位 System.out.println(25%10); // 取出个位 //练习:求三位数的百位,十位,个位 int x = 124; System.out.println(x/100); //打印百位 System.out.println(x/10%10); //打印十位,先除10,结果是12,再取余,余数是2 System.out.println(x%10); //打印个位,直接对10取余,商为12,余数为3 /*测试自增自减运算符*/ /*++:变量的值+1 --:变量的值-1 *前缀式,符号在前,++a,--a,先变化,再使用 * 后缀式,符号在后,a++,a--,先使用,再变化(+1/-1) */ int a =1; System.out.println("********我是一个无情的分界线********"); System.out.println(a++);//后缀式,要先打印,不会影响本次打印 System.out.println(a);//之前使用过了,变量值+1 int b =1; System.out.println(++b);//前缀式,先自增,再打印 System.out.println(b); int c =1; System.out.println(c--);//后缀式,先使用,再自减 System.out.println(c);//0,之前使用过了,所以打印的是自减后的0 int d =1; System.out.println(--d);//0,前缀式,符号在前,先自减,再打印 System.out.println(d); /*注意:之前的代码可能会对后面的代码产生影响*/ /*自增自减运算符会改变变量本身的值,而四则运算则不会*/ //此处的c的初始值为0 System.out.println(--c-c-c--);//-1-(-1)-(-1)=1 System.out.println(c);//-2 /* * == 比较两个操作数是否相等,相等结果为true,例:1==2 结果为false * != 比较两个操作数是否相等,相等结果为false 例:1!=2 结果为true * & 逻辑与 两边结果同为true结果才为true * && 短路与 与逻辑与原理相同,但是只要有一边结果为false,就停止执行,结果为false * | 逻辑或 两边结果只要有一个为true,结果就为true * || 短路或 与逻辑或原理相同,但只要一边结果为true,就停止执行,结果为true * + 字符串连接 * ! 非,非真是假,非假是真 */ } }
-
了解过这些我们来做一个小的案例,加强印象。需求:接收用户输入的年份,判断是平年还是闰年
科普:四年一闰年,百年不闰年,四百年又闰如果是闰年,需要满足以下两个条件其中之一;能被4整除,但是不能被100整除,比如1900年就是一个平年 * 2.能被400整除, 比如2000年就是一个闰年。package cn.tedu.study1; import java.util.Scanner; public class Day03TestYears { public static void main(String[] args) { //1、提示并接收用户输入的年份 System.out.println("请输入您与要判断的年份:"); int year = new Scanner(System.in).nextInt(); //2、定义一个变量用来保存最终的结果 String result="平年"; //3、判断是平年还是闰年 if(year%4==0&&year%100!=0||year%400==0) { result = "闰年"; System.out.println(year+"年是:"+result); } else System.out.println(year+"年是:"+result); } }
-
其次我们还要了解并掌握的还有一个三目运算符,它的运用比较节省空间,提高了代码的效率,我们还是以代码来展示理解。比较三个数的大小要好好理解,遵从代码的运行原理,顺序执行。
package cn.tedu.study1; import java.util.Scanner; //需求:接收用户输入的两个整数,比较并输出两者之间的最大值 public class Day03TestMaxNumber { //0、创建程序的入口函数main() public static void main(String[] args) { //1、提示并接受用户输入的数据 System.out.println("请输入您要比较的第一个数:"); int a=new Scanner(System.in).nextInt(); System.out.println("请输入您要比较的第二个数:"); int b=new Scanner(System.in).nextInt(); /* 三目运算符 1?2:3 1是表达式1真取2,1假取3 */ int max=a>b?a:b; int min=a<b?a:b; System.out.println("最大值是:"+max); System.out.println("最小值是:"+min); //练习:比较3个数的大小 System.out.println("请输入您要比较的第一个数:"); int m=new Scanner(System.in).nextInt(); System.out.println("请输入您要比较的第二个数:"); int x=new Scanner(System.in).nextInt(); System.out.println("请输入您要比较的第三个数:"); int p=new Scanner(System.in).nextInt(); int Max=m>x?(m>p?m:p):(x>p?x:p); int Min=m<x?(m<p?m:p):(x<p?x:p); System.out.println("最大值是:"+Max); System.out.println("最小值是:"+Min); } }
-
再接下来我们就进入了今天稍微难一点的内容,方法的特性,如何建立方法,怎么使用方法,有哪些规则,在以后的工程项目中我们经常运用的其实大多数是main()方法去调用其他的方法,来实现功能,所以怎么实现这种部分的内容呢?方法有哪些特性呢?这些都是我们要掌握的,具体操作及解释看下面的代码。
package cn.tedu.method; //本类用于测试方法的特性 public class Day3_TestMethod { public static void main(String[] args) { //我们通过方法名+参数列表来确定具体调用哪个方法 System.out.println(1); Method1();//调用自定义的方法 System.out.println(6); Method2(10); int result=Method3(1,2);//把返回值返回到调用位置 } //创建自定义的方法 //方法定义的格式:方法的修饰符 方法的返回值类型 方法名(方法的参数){方法体} public static void Method1() { System.out.println(2); System.out.println(3); System.out.println(4); System.out.println(5); } //笨方法用于测试方法的参数,参数的位置在方法名后变得括号里 //格式:(参数类型 参数名),只有方法定义了参数,调用方法时才能传参数 private static void Method2(int a) { System.out.println(a*a); } //本方法用于测试方法的返回值,如果方法有返回值,可以设置返回值的类型 //若设置了返回值类型,必须在方法里使用return 关键字返回对应类型的结果 private static int Method3(int i, int j) { System.out.println(i+j); return i+j; } }
-
方法的重载,什么是方法的重载,我们根据 方法名+参数列表 来确定具体调用哪个方法
方法的重载:在同一个类中存在多个相同名字的方法,但是参数列表不同的方法
f(String a,int b) f(String b,int a)--不构成重载
f(String a,int b) f(int a,String b)--构成重载
如果在一个类中存在多个同名的方法,方法的参数个数不同,一定构成重载
如果在一个类中存在多个同名的方法,方法的参数个数相同
我们需要检查对应位置上参数的类型,与参数名无关
大家一定要注意,方法的重载看的是参数的类型,与参数的名字无关。package cn.tedu.method; //本类测试方法重载 public class Day3_TestMethodOverload { //0.创建程序的入口函数main public static void main(String[] args) { f(); f(666); f("英雄联盟",100); f(100,"英雄联盟"); } //构成重载 private static void f(int i, String s) { System.out.println(s+"今晚干它"+i+"局"); } private static void f(String s, int i) { System.out.println(s+"今晚干它"+i+"局"); } //创建一个f(int),含有一个类型参数的f方法 private static void f(int i) { System.out.println("我有参数了"+i); } //创建一个没有参数的方法 public static void f() { System.out.println("我没有参数~~"); } }
-
在我们有这么多方法之后,程序里边就要执行很多代码,随之就有很多的变量,这个时候,我们就要了解成员变量和局部变量。这样使得我们的代码会更加适用。 定义成员变量
1)位置:类里方法外
2)使用时,可以不初始化(赋值),会自动赋予对应类型的默认值
3)作用范围:整个类中都生效,类消失,成员变量才会消失 定义局部变量
1)位置:在方法里或者局部代码块中
2)使用时,局部变量必须手动初始化(自己赋值)
3)作用范围:在方法里,方法结束,局部变量释放
变量有一条使用原则:就近原则package cn.tedu.study1; /*本类用于测试成员变量和局部变量*/ public class Day03TestVariable2 { //2.定义成员变量 static int sum; static int a; //1.创建程序的入口函数main() public static void main(String[] args) { //3.定义局部变量 int sum = 100; System.out.println(sum);//100 System.out.println(a);//0 } }
-
我们定义了不同类型的变量,这个时候我们就要知道不同类型的变量的默认值是什么。我们可以做一个测试。
package cn.tedu.study1; /*本类用于测试各种类型的默认值*/ public class Day03TestVariable1 { //类里方法外的变量被称作成员变量,成员变量可以不初始化(赋值) static String name;//null static byte a; static short b; static int c; static long d; static float f; static double g; static char h; static boolean i; public static void main(String[] args) { System.out.println(name);//引用类型的默认值是null System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d);//整数类型的默认值是0 System.out.println(f); System.out.println(g);//浮点型数据的默认值是0.0 System.out.println(h);//char类型的默认值是/u0000,显示出来是空格 System.out.println(i);//boolean类型的默认值是false } }
最后我们需要将今天的内容串联起来,方便我们理解,加深印象。希望我们大家都能早日光头强。
Java小白StudyDay03---z四则运算 自定义方法 方法的重载 局部变量 成员变量
最新推荐文章于 2022-01-07 22:43:44 发布