day03
文章目录
1.运算符
用于连接表达式 的 操作数,并对操作数执行运算。
eg:表达式num1+num2,其操作数是num1和num2,运算符是’+’。
运算符可分为5种类型:
算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符。
1.1 自增自减
//++a,--a 先变化再使用
//a++,a-- 先使用再变化
//前缀式,符号在前,++a--a,先变化(+1/-1),再使用
//后缀式,符号在后,a++,a--,
package cn.tedu.basic;
//测试取余和自增自减运算符
public class TestOperator {
public static void main(String[] args) {
// TODO Auto-generated method stub
//1.测试除法与取余
System.out.println(123/100);//取商
System.out.println(123/10%10);//取十位数
System.out.println(123%120);//取余
//++a,--a 先变化再使用
//a++,a-- 先使用再变化
//前缀式,符号在前,++a--a,先变化(+1/-1),再使用
//后缀式,符号在后,a++,a--,
int a = 1;
System.out.println(a++);//1
System.out.println(a);//2
int b = 2;
System.out.println(++b);//3
System.out.println(b);//3
int c=0;
System.out.println(--c-c-c--);//1
System.out.println(c);//-2
}
}
1.2 输出两个数中值大的数:double max = a>b?a:b;
package cn.tedu.basic;
//输出两个数其中值更大的数
import java.util.Scanner;
public class TestMaxValue {
public static void main(String[] args) {
System.out.println("请输入第一个值:");
double a = new Scanner(System.in).nextDouble();
System.out.println("请输入第二个值:");
double b = new Scanner(System.in).nextDouble();
double max = a>b?a:b;
System.out.println("两个数中大的值为:"+max);
}
}
1.3 输入年份判断是否为闰年?
四年一闰并且百年不闰,还有四百年为闰
a && b // 当1是false时,2会被短路,提高程序的效率
a || b //当1是true时,2会被短路,提高程序效率
package cn.tedu.basic;
import java.util.Scanner;
//判断闰年还是平年
//四年一闰,百年不闰,四百年又闰
//
public class TestYear {
public static void main(String[] args) {
// TODO Auto-generated method stub
while(true){
System.out.println("请输入年份:");
int year = new Scanner(System.in).nextInt();
if(year%4==0&&year%100!=0||year%400==0){
}
if (year%4==0 && year%100!=0|| year%400==0){
System.out.println(year+"年是闰年");
}else{
System.out.println(year+"年是平年");
}
}
}
}
2 方法
具有功能及可被调用的代码块
方法格式:方法的修饰符 方法的返回值类型 方法名(方法的参数){方法体}
package cn.tedu.basic;
public class TestMethod {
public static void main(String[] args) {
/*
* 通过方法名+参数列表来确定具体调用哪个方法
*/
System.out.println(1);
method1();//567
System.out.println(4);
int result = method2(10,3);//30
}
//用于测试方法的返回值,如果方法有返回值,可以设置返回值的类型
//若设置返回值得类型,必须使用return关键字返回对应类型的结果
private static int method2(int a,int b) {
System.out.println(a*b);
return a*b;
}
//创建自定义方法格式
//方法格式:方法的修饰符 方法的返回值类型 方法名(方法的参数){方法体}
public static void method1(){
System.out.println(567);
}
}
2.1方法的重载
方法的重载是指在一个类中定义多个同名的方法,但是每个方法的参数列表不同(也就是指参数的个数和类型不同)。
/*f(String a ,int b) f(String b ,int a) ---不构成重载
*f(String a ,int b) f(int a , String b) --构成重载
*如果一个类中存在多个同名方法,方法参数个数不同,一定构成重载
*如果一个类中存在多个同名方法,方法参数个数相同,
*需要查看位置上参数的类型,与参数名无关
*方法的重载的是参数类型,与参数的名字无关
package cn.tedu.basic;
//方法的重载
public class TestMethodOverload {
public static void main(String[] args) {
//方法名+参数列表来确定具体调用哪个方法
/*方法的重载:
* 在同一个类中,存在多个同名的方法,但参数列表不同的方法
*/
f();
f(666);
f("猛哥",6);
/*f(String a ,int b) f(String b ,int a) ---不构成重载
*f(String a ,int b) f(int a , String b) --构成重载
*如果一个类中存在多个同名方法,方法参数个数不同,一定构成重载
*如果一个类中存在多个同名方法,方法参数个数相同,
*需要查看位置上参数的类型,与参数名无关
*方法的重载的是参数类型,与参数的名字无关
*/
}
private static void f(String s, int i) {
// TODO Auto-generated method stub
System.out.println(s+"今晚干它"+i+"碗大米饭");
}
private static void f(int i) {
// TODO Auto-generated method stub
System.out.println("参数"+i);
}
private static void f() {
// TODO Auto-generated method stub
System.out.println("无参数");
}
}
3 变量
可以改变的数,称为变量。
变量类型 变量名 = 变量值 ,如:int a = 3
3.1局部变量
* 局部变量
* 在方法里,局部代码块中
* 使用时,必须手动初始化(自己赋值)
* 方法结束,局部变量释放
* 变量使用一条原则:就近原则
package cn.tedu.basic;
//用于测试成员变量和局部变量
public class TestVariable2 {
static int sum;
static int a;
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 局部变量
* 在方法里,局部代码块中
* 使用时,必须手动初始化(自己赋值)
* 方法结束,局部变量释放
* 变量使用一条原则:就近原则
*/
int sum = 100;
System.out.println(sum);//100
System.out.println(a);//0
}
}
3.2成员变量
1.类里方法外的变量被称作成员变量,
2.成员变量可以不初始化(赋值)
3.在整个类中都生效,类消失,成员变量才会消失
//测试各种类型的默认值
package cn.tedu.basic;
//测试各种类型的默认值
public class TestVariable {
//类里方法外的变量被称作成员变量,成员变量可以不初始化(赋值)
static String name;
static byte a;
static short b;
static int c;
static long d;
static float e;
static double f;
static char g;
static boolean h;
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);
System.out.println(e);
System.out.println(f);//double的默认值是0.0
System.out.println(g);//char的默认值是/u0000
System.out.println(h);//boolean类型的默认值是false
}
}