The third day
变量分类(局部变量,成员变量,静态变量)
成员变量
(也叫实例变量 member variable) 方法外部,类的内部定义的变量。从属于对象,生命周
期伴随对象始终;
期伴随对象始终;
静态变量
(类变量static variable):使用static定义。从属于类,生命周期伴随类始终,从类加载到
卸载。
卸载。
局部变量(local variable)
方法或语句快内部定义的变量,生命周期是从声明位置开始到方法或语句
块执行完毕为止;
常量(Constant)so easy
块执行完毕为止;
1 public class TestVariable{ 2 int a ; //成员变量,成员变量会自动被初始化 3 static int size; //静态变量,从属于类 4 5 public static void main(String[] args){ 6 { 7 int age; 8 age= 18; 9 } 10 int salary= 3000; //局部变量 11 int gao = 13; 12 System.out.println(gao); 13 int i; 14 // int j=i+5;//编译出错,变量i还未被初始化 15 } 16 }
常量(Constant)so easy
数据类型:
一:基本数据类型:
1数值型:(1)整数类型(byte(1字节),short(2字节),int(4字节),long(8字节)
(2)浮点类型(float(4字节),double(8字节))
2字符型:(char (2字节))例:‘a'
3布尔型:(boolean(内存中占一位)) 只有 true 和 false
(2)浮点类型(float(4字节),double(8字节))
2字符型:(char (2字节))例:‘a'
3布尔型:(boolean(内存中占一位)) 只有 true 和 false
二:引用数据类型(4字节)
类(class) 接口(interface) 数组
2.八进制整数:要求以0开头 如:015
3.十六进制数:要求0x或0X开头 如:0x15
4.二进制数:要求0b或0B开头, 如:0b01110011
Java语言的整型常数默认为int型,声明long型常量可以后加’I‘或’L‘
转义字符:/n换行 ; /r回车;/d退格
Java 语言整型常量的四种表示形式
1.十进制整数2.八进制整数:要求以0开头 如:015
3.十六进制数:要求0x或0X开头 如:0x15
4.二进制数:要求0b或0B开头, 如:0b01110011
Java语言的整型常数默认为int型,声明long型常量可以后加’I‘或’L‘
转义字符:/n换行 ; /r回车;/d退格
1 char a= 'i'; //字符用char 2 String a= "i"; //字符串用string 3 boolean: 4 boolean flag; 5 flag = true; 6 if(flag){ 7 //true分支 8 }else{ 9 //false分支 10 }
运算符:
算术运算符:+ ,-, *, /,%, ++,--;
赋值运算符:=
扩展运算符:+=,-=,*=,/=;
关系运算符:>, <, >=, <=, ==, !=, inst, anceof
逻辑运算符:&&,||,!,^
位运算符:&,|,^,~, <<,>>,>>>
条件运算符:?:
字符串连接符:+
整数运算:
1.如果两个操作数有一个为long,则结果也为long,
2.没有long时,结果为int。即使操作数全为short,byte,结果也是int.
浮点运算:
3.如果两个操作数有一个为double,则结果为double。
4.只有两个操作数都是float,则结果才为float。
取模运算:操作数一般使用整数,结果是“余数”,“余数”符号和左边操作数相同,如:7%3=1,-7%3=-1
,7%-3=1。
赋值和赋值扩展运算符:
+= a+=b a=a+b
-= a-=b a=a-b
*= a*=b a=a*b
/= a/=b a=a/b
%= a%=b a=a%b
字符串连接: int a =3+7; syso (a=10)
String a= 3+"7"; syso (a=37)不同类型的,+ 作为连接符
条件运算符:(三个方法)
运算符优先级:其它不需要记,逻辑非>逻辑与>逻辑或、
字符类型自动转化: 只能容量小的向容量大的转换
int a= 234;
long b= 'a';
double d = b;
float f= 2342342l;
byte b2= 123;
注意计算大数据时是否会“溢出”。
使用scanner获得键盘的输入:
算术运算符:+ ,-, *, /,%, ++,--;
赋值运算符:=
扩展运算符:+=,-=,*=,/=;
关系运算符:>, <, >=, <=, ==, !=, inst, anceof
逻辑运算符:&&,||,!,^
位运算符:&,|,^,~, <<,>>,>>>
条件运算符:?:
字符串连接符:+
整数运算:
1.如果两个操作数有一个为long,则结果也为long,
2.没有long时,结果为int。即使操作数全为short,byte,结果也是int.
浮点运算:
3.如果两个操作数有一个为double,则结果为double。
4.只有两个操作数都是float,则结果才为float。
取模运算:操作数一般使用整数,结果是“余数”,“余数”符号和左边操作数相同,如:7%3=1,-7%3=-1
,7%-3=1。
赋值和赋值扩展运算符:
+= a+=b a=a+b
-= a-=b a=a-b
*= a*=b a=a*b
/= a/=b a=a/b
%= a%=b a=a%b
字符串连接: int a =3+7; syso (a=10)
String a= 3+"7"; syso (a=37)不同类型的,+ 作为连接符
条件运算符:(三个方法)
1 int score =80; 2 int x = -100; 3 String type = score<60?"不及格":"及格"; 4 System.out.println(type); 5 if(score<60){ 6 System.out.println("不及格"); 7 }else{ 8 System.out.println("及格"); 9 } 10 System.out.println(x>0?1:(x==0?0:-1)); 11
运算符优先级:其它不需要记,逻辑非>逻辑与>逻辑或、
字符类型自动转化: 只能容量小的向容量大的转换
int a= 234;
long b= 'a';
double d = b;
float f= 2342342l;
byte b2= 123;
注意计算大数据时是否会“溢出”。
使用scanner获得键盘的输入:
1 import java.util.Scanner; 2 //测试键盘的输入 3 public class scanner { 4 public static void main(String[] args) { 5 Scanner scanner = new Scanner(System.in); 6 System.out.println("请输入名字"); 7 String name = scanner.nextLine(); 8 System.out.println("请输入你的爱好"); 9 String favor = scanner.next(); 10 System.out.println("请输入你的年龄"); 11 int age= scanner.nextInt(); 12 13 System.out.println("#######"); 14 System.out.println(name); 15 System.out.println(favor); 16 System.out.println("来到地球的天数:"+age); 17 } 18 }
控制语句和现实逻辑的应用
任何软件和程序,小到一个练习,大到一个操作系统,本质上都是由“变量,选择语句,循环语句”组成 if单选择结构
if-else双选择结构
if-else if-else多选择结构
if(布尔表达式){语句1
}else if (布尔表达式){语句2
}else if (布尔表达式){语句3
}……else if (布尔表达式) {语句n}
if-else双选择结构
if-else if-else多选择结构
if(布尔表达式){语句1
}else if (布尔表达式){语句2
}else if (布尔表达式){语句3
}……else if (布尔表达式) {语句n}
1 public class Test2elseif { 2 public static void main(String[] args){ 3 int i = (int)(12*Math.random()); 4 System.out.println("学习多少小时"+i+"决定什么样的成就"); 5 if(i<2){ 6 System.out.println("混个温饱"); 7 }else if(i<5){ 8 System.out.println("学有所成"); 9 }else if(i<8){ 10 System.out.println("月薪上万"); 11 }else{ 12 System.out.println("未来不是梦"); 13 } 14 } 15 }
switch结构
Math类的使用:1.java.lang包中的Math类提供了一些用于数学计算的方法
2.Math.random()该方法用于产生一个0到1区间的double类型的随机数,但是不包括1;
int i = (int)(6*Math.random()); //产生一个[0,5]之间的随机整数
新手雷区:1.如果if语句不写{},则只能作用于后面的第一条语句。
2.强烈建议,任何时候都写上{},即使里面只有一句话!
//测试选择语句
Math类的使用:1.java.lang包中的Math类提供了一些用于数学计算的方法
2.Math.random()该方法用于产生一个0到1区间的double类型的随机数,但是不包括1;
int i = (int)(6*Math.random()); //产生一个[0,5]之间的随机整数
新手雷区:1.如果if语句不写{},则只能作用于后面的第一条语句。
2.强烈建议,任何时候都写上{},即使里面只有一句话!
//测试选择语句
1 public class Test1 { 2 public static void main(String[] args) { 3 double d = Math.random(); //返回(0,1)之间的随机数 4 System.out.println(d); 5 6 int i=(int)(6*Math.random()+1); 7 System.out.println(i); 8 if(i<=3){ 9 System.out.println("小"); 10 System.out.println("小小小"); 11 } 12 System.out.println("##############"); 13 //通过掷3个塞子看看今天的手气如何? 14 int a=(int)(6*Math.random()+1); 15 int b=(int)(6*Math.random()+1); 16 int c=(int)(6*Math.random()+1); 17 int k= a+b+c; 18 if (k>15){ 19 System.out.println("手气不错"); 20 } 21 if(k>=10&&k<=15){ 22 System.out.println("今天手气一般"); 23 } 24 if(k<10){ 25 System.out.println("今天手气不怎么样"); 26 } 27 System.out.println("得了"+k+"分"); 28 } 29 }