Java day03
变量
数据类型 变量名 = 值;
int a = 10;
变量作用域
- 类变量
- 实例变量:从属于对象,在类的里面,方法外面,不进行初始化,就是默认值(0 0.0 false null)
- 局部变量:从属于类,和类同时存在,同时消失,可以直接使用。
public class helloworld{
static int allclicks= 0;//类变量,前面要加static
String str = "hello world ";//实例变量,没有stati
public void method(){
int i = 0;//局部变量,在方法内
/*变量类型 变量名字 = new helloworld();*/
helloworld helloworld = new helloworld();//使用实例变量
System.out.println(helloworld.str);
System.out.println(allclicks);//使用类变量
}
}
常量
初始化(initialize)之后不能改变!不会变动的值!
定义: final 变量类型 常量名= 值;
final double PI=3.14;
static final double PI = 3.14;//static 是修饰符
变量名的命名规范
- 所以的变量,方法,类名,都要见名知意
- 类成员的变量:首字母小写和驼峰原则:monthsalary lastName
- 常量:大写字母和下划线 MAX_VALUE
- 类名:首字母大写和下划线 Man,GoodMan
- 方法名,首字母小写和驼峰原则 run(); add();
运算符
算术运算符:+,-,*,、,%,++,–
赋值运算符:=
关系运算符:> , < , >= , <= , == , != ,instanceof
逻辑运算符:&& , ||,!
位运算符:&,|,^, ~ , >> , <<, >>>(了解)
/*
与二进制有关
A=0011 1100
B=0000 1101
------------------
A&B=0000 1100 两个都为1才可得1,否则就是0
A|B=0011 1101 两个都为0才可得0,否则就是1
A^B=0011 0001 两个相同为0,不同为1
~B=1111 0010对B进行取反
----------------
<< 左移==*2
>> 右移==/2效率极高!!
*/
扩展赋值运算符: +=,-= , * =, /=
int a=10;
int b=20;
System.out.println(""+a+b);
System.out.println(a+b+"");
输出结果如图:
" "在a+b前,a+b会进行拼接,在后面则进行运算
条件运算符:? : (三元运算符)
x ? y : z;如果x==true 则执行y,否则执行z
int score = 19;
String type = score>60? "及格":"不及格";
System.out.println(type);//输出为不及格
包机制
- 一般利用公司域名倒置作为包名;com.manman.blog。定义包 package
- 为了能够使用一个包的成员,我们需要在Java程序中明确导入该包,使用”import“语句即可完成
import java.util.*;//导入这个包下所有的类
用户交互Scanner
Java提供一个工具类可以获取用户的输入
import java.util.Scanner;
是Java5 的新特征
基本语法:
Scanner sc = new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,读取之前一般用hasNext()与hasNextLine判断是否还有输入的数据。
Scanner scanner = new Scanner(System.in);
if(scanner.hasNext())
{
String str = scanner.next();
System.out.println(str);
}
scanner.close;//使用完关闭
next():
- 一定要读取到有效数字才可以结束输入
- 对于输入有效字符之后遇到的空白,next()方法会自动将其去掉
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
- next()不能得到带有空格的字符串
nextLine():
- 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
- 可以获得空白。
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字");
double sum = 0;
int m = 0 ;
while (sc.hasNextDouble()){
m++;
sum+=sc.nextDouble();21
}
System.out.println(m+"个数的和是"+sum);
System.out.println(m+"个平均值是"+(sum/m));
sc.close();
输入如图所示,输入yt,不是double类型就会结束循环
顺序结构
- Java最基本的就是顺序结构,除非特别指明,否则就是一句一句执行
- 语句与语句之间,框与框之间都是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,他是任何一个算法都离不开的一种基本算法结构。
选择结构
if选择结构
if单选择结构
语法:if(布尔表达式){
//如果布尔表达式为true,则执行
}
Scanner sc = new Scanner(System.in);
String str = sc.next();
if(str.equals("hello"))
{
System.out.println(str);
}
System.out.println("不是hello");
sc.close();
if双选择结构
if(布尔表达式){
//布尔表达式为true执行
}else{
//布尔表达式为false执行
}
import java.util.Scanner;
public class Demon02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
if(score>60) System.out.println("及格");
else System.out.println("不及格");
sc.close();
}
}
if多选择结构
if(布尔表达式){
}else if(布尔表达式){
}else if(布尔表达式){
}else{
}
import java.util.Scanner;
public class Demon02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
if(score>=60&&score<80) System.out.println("及格");
else if(score>=80&&score<=99) System.out.println("优秀");
else if(score==100) System.out.println("满分");
else if(score<60)System.out.println("不及格");
else System.out.println("成绩不合法");
sc.close();
}
}
switch 多选择结构
- 多选择结构可以用switch case语句实现
- switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
- switch变量可以是:byte 、short、int、或者char
- switch支持字符串String类型
- 同时case标签必须为字符串常量或者字面量
import java.util.Scanner;
public class Demon02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char alphabet = sc.next().charAt(0);
switch (alphabet)
{
case 'A':
System.out.println("优秀");break;
case 'B':
System.out.println("良好");break;
case 'C':
System.out.println("及格");break;
case 'D':
System.out.println("不及格");break;
default:
System.out.println("输入存在错误");
}
}
}
增强for循环
Java5引入一种主要用于数组或集合的增强for循环
语句格式:
for(声明语句:表达式){
//代码
}
public class Demon04 {
public static void main(String[] args) {
int[] number ={10,20,30,40};
for (int x: number){//遍历整个数组,number把里面的值赋值给x,将x输出
System.out.println(x);
}
for(int i=0;i<4;i++){
System.out.println(number[i]);
}
}
}
简单定义一个数组
int[] a={10,30};//推荐使用
int a[]={10,30};