初识Java
熟练掌握安装、配置jdk开发环境
- 官网下载java-jdk
- 环境变量是为了跟快捷的使用Java的jdk
熟练掌握使用记事本开发Java程序
1.类的名字和文件名一定要相同
2.类:public class xx
3.方法:public static void main(String[] args)
4.输出:System.out.println("");
会使用MyEclipse开发Java程序
-
用包组织Java源文件,类似于文件夹
-
选择菜单"Window–Show View–Package Explorer"打开
使用java反编译工具
- 将源文件(.Java)转换成字节码文件(.class)的过程成为编译
- 将字节码文件(.class)转换回源文件(.Java)的过程成为反编译
- Jad、FrontEnd
变量
规则
- 字母、下划线、美元符号、人民币符号、数字、使驼峰命名法有意义
- 不能使用关键字,如public、class
掌握变量使用
- 第一步:声明变量,根据数据类型在内存申请空间
- 第二步:赋值,即“将数据存储至对应的内存空间”
- 第三步:使用变量,即"取出数据使用"
常量的使用
优点和规则
- 比较安全
- 常量名通常大写
- 不同字符使用下划线分割
- 只能被赋值一次,通常定义时即对其初始化
- 变量前加:final
算术运算符
- % = 除于取下面的值
- / = 除于取上面的值
- ++ = +1
- ++前面就先加在运算;++放在后面就先运算后再加1
- – = -1
- ++ 比 == 优先
逻辑运算符
- &&
短路与
两个操作数都是true,结果才是true - ||
短路或
两个操作数一个是true,结果就是true - !
非
操作数为true,结果为false
操作数为false,结果为true - 如果第一个操作数已经能确定表达式的值,第二个操作数就不必计算了;优先级别!>&&>||
条件运算符(三目运算符)
- 条件 ?表达式1 : 表达式2 (语法)
- 表达式1成立就给前面的值;不成立就给后面的值
- int min;
了解Java中的数据类型
-
数据类型
数值
整型
(1)byte(2)short
(3)long
(4)int(整数常用)
-
浮点型
(1)double (有小数点常用这个)
(2)float (要在后面加f)
-
非数值
(1)char (字符型)
(2)boolean(布尔型)
(3)true
(4)false
(5)string (不是基本数据类型,是引用数据类型,他是Java提供的一个类)
-
Scanner
接收键盘输入的值
-
第一步:导入Scanner的类
import java.util.* -
第二步:创建Scanner对象
Scanner XX = new Scaner(System.in) -
第三步:获得键盘输入的值
int XX = input.xtlnt();
int XX = sc.nextlnt -
例如:输入会员卡号
import java.util.Scanner;
public class yi{
public static void main(String[] args){
int custNo; //会员号
System.out.println("请输入会员卡号:");
Scanner input=new Scanner(System.in); //括号里面代表键盘
custNo=input.nextInt(); //nextInt()获取从键盘输入的一个整数,并赋值给num变量
System.out.println("会员卡号是:"+custNo);
}
}
-
列如:实现抽奖程序
import java.util.Scanner;
public class qi{public static void main(String[] args){
int custNo;
//会员号System.out.println("请输入会员卡号:");
-
-
Scanner input=new Scanner(System.in);
`//括号里面代表键盘custNo=input.nextInt();`
`//nextInt()获取从键盘输入的一个整数,并赋值给num变量System.out.println("会员卡号是:"+custNo);`
`}`
掌握数据类型转换
自动类型转换
-
规则一:如果一个操作数为double型,则整个表达式可提升为double型
-
规则二满足自动类型转换的条件
(1)两种类型要兼容
数值类型(整型和浮点型)互相兼容
(2)目标类型大于原类型:
double型大于int型-
列如:
import java.util.Scanner;
public class er{
public static void main(String[] args){
double diyi=81.29;//第一次平均分
double dier;
int rise = 2;
dier = diyi + rise;
System.out.println(“第二次平均分是:”+dier);
}
}
-
强制类型转换规则
-
int b = (int)10.2;
结果为10 -
double a = 10;
结果为10.0 -
int c = (int)a;
结果为10 -
等于后面加小括号写上数据类型并和之前的数据类型一样
低的类型自动变成高的类型 (概括) -
列如:
int num = 786;
byte by = num; //错误
byte by = (byte)num; //正确,为强制类型转换
short sh = num; //错误
short sh = (short)num; //正确,为强制类型转换
选择结构
掌握if分支结构
基本的if选择结构
-
if与具有条件表达式紧随其后的语句组成.如果if条件表达式后面有多个语句,千万不要忘记:在多个语句的前后添加一对大括号.
-
if-else语句由if和紧随其后的else组成
-
else子句不能单独使用,必须是if语句的一部分,与最近的if语句配对使用
-
无论多分支if语句中有多少个表达式,只会执行符合条件的一个.如果没有符合条件的,则执行else子句中的语句
-
if或else字句中要执行的语句超过一条,则必须将这些语句用大括号括起来
-
列如:if(条件){//代码块}else if{(代码块2)}else{代码块3}
-
例如:使用多分支if语句判断成绩值
题目:
如果成绩大于等于90且小于100,则输入信息"A级"
如果成绩大于等于80,则输入信息"B级"
如果成绩大于等于70,则输入信息"C级"
如果成绩大于等于60,则输入信息"D级"
如果成绩低于60,则输入信息"E级"
public stats void main(String[] args){
int score = 85;
if(score>=90 && score<=100){ //判断score值是否大于等于90且小于等于100
System.out.println(“A级”);
}else if(score>=80){ //判断score值是否大于等于80且小于90
System.out.println(“B级”);
}else if(else>=70){ //判断score值是否大于等于70且小于80
System.out.println(“C级”);
}else if(else>=60){ //判断score值是否大于等于60且小于70
System.out.println(“D级”);
}else{ //判断score值小于60
System.out.println(“E级”);
}
}
掌握switch分支结构
- switch用于实现多分枝选择结构.他和多分支if控制语句结构在某种情况下可以相互替代.
- 如果case后面没有break语句,程序将继续向下执行,直到遇到break语句或switch语句结束,
- switch、case、break、default是Java关键字
- switch后的表达方式可以是int、short、byte、char、枚举类型、String类型表达式
- case用于与表达式进行匹配
- break用于终止后续语句的执行
- default是可选的,当其他条件都不匹配时执行default
例如1:
switch(表达式){
case常量1:
语句;
break;
case常量2:
语句;
break;
default:
语句;
break;
}
例如2:
package T;
import java.util.*;
public class T1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);//接收键盘
System.out.println("请输入成绩:");//提示用户
int num =sc.nextInt();//接收数据赋值
switch (num/10) {
//总和/10得到一个整数
case 10:
System.out.println("满分");//成绩等于100分
break;
case 9:
System.out.println("A级");//大于等于90分
break;
case 8:
System.out.println("B级");//大于等于80分
break;
case 7:
System.out.println("C级");//大于等于70分
break;
case 6:
System.out.println("D级");//大于等于60分
break;
default:
System.out.println("不及格");//除了以上分数之外
break;
}
}
}
循环结构
掌握while循环结构
-
while语句是先判断循环条件再执行循环体,如果第一次判断循环条件为假,循环将一次也不执行
-
while语句的执行步骤
(1)首先队循环条件的结果进行判断,如果结果为真,则执行循环语句
(2)执行完毕后继续队循环条件进行判断,如果为真,继续执行
(3)如果结果为假,则跳过循环语句,执行后面的语句- 不要忘记"i++",它用来修改循环变量的值,避免出现死循环
例如:
public ststic void main(String[] args){
int sum =0;
int i= 1;
while(i<=100){
sum+=i;
i++;
}
System.out.println("sum="+sum);
}
//输出结果为:sum=5050
掌握do-while循环结构
-
do-while以分号结尾,分号非常重要,不能省略.
-
do-while语句先执行循环体再判断循环条件,所以循环体至少执行一次,这一点和while循环正好相反
例如:
public ststic void main(String[] args){ int sum =0; int i= 1; do{ sum+=1; i++; }while(i<=100){ System.out.println("sum="+sum); } } //输出结果为:sum=5050
掌握for循环结构
-
循环次数固定,for比while更加简洁
-
无论循环多少次,表达式1只能执行一次
-
for语句和while语句功能相似,都是先判断条件再执行,只是采用了不同的语法格式
例如:
import java.util.*; public class test5{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("输入学生姓名:"); String ming = sc.next(); int ke = 0; for(int i = 0; i<5;i++){ System.out.println("请输入第"+(i+1)+"门课的成绩:"); ke = ke + sc.nextInt(); } System.out.println(ming+"的平均分是:"+(ke / 5.0 )); } }
多重循环
掌握Java二重循环
- 各循环互相嵌套
- 一般不超过三层
- 外层循环变量变化一次,内层循环要变换一遍
使用跳转语句控制程序流程
break语句
-
break常用语switch结构和循环结构中
-
遇到break,立即跳出switch语句
public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in);//接收键盘 int week=0;//声明变量 do { System.out.println("输入1-7之间的数字,输入0退出程序:"); week= sc.nextInt(); if(week>=8||week<0) { System.out.println("输入1-7之间的数字,输入错误:"); continue; }switch(week) { case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; case 3: System.out.println("星期三"); break; case 4: System.out.println("星期四"); break; case 5: System.out.println("星期五"); break; case 6: System.out.println("星期六"); break; case 7: System.out.println("星期天"); break; } }while(week != 0);//只要week不是0就不会结束 System.out.println("程序结束!"); } }
continue语句
-
只能用在循环里
-
跳到循环体中剩余的语句而执行下一次循环
-
双重循环亦是如此
例如:
public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("输入学生姓名:"); String ming = sc.next(); int sum = 0; int cj=0; for(int i=1;i<=5;i++) { System.out.println("请输入第"+i+"门成绩:"); cj =sc.nextInt(); if(cj<0) { System.out.println("成绩输入错误!请重新输入!"); i=i-1; continue; } sum +=cj; } System.out.println("平均分是:"+(sum/5)); } }