一、前期准备
1、安装jdk环境->配置环境变量->安装IDE
安装地址
二、java基础
1、java程序基本结构包含:包、类、main主方法、标识符、关键字、语句和注释
2、主方法写法是固定的
public static void main(String[] args){
}
3、java程序基本结构
package Liu //定义包
public class Example{ //创建类
static int one=1; //定义类变量
public static void main(String[ ] args){ //定义主方法
String var =“hello”; //定义局部变量
System.out.println(one); //输出成员变量值
System.out.println(var); //输出局部变量值
System.out.println(“我是”+ one);
}
}
注意:标识符和关键字是区分大小写的
关键字:package、class、static
标识符:Liu、Example、main 标识符是区分大小写的
变量,常量,函数,语句块也有名字,我们统统称之为Java标识符
关键词是其含义由编程语言定义的词
加号有两种含义,一种是算数加法,另一种是字符串的链接
4、从控制台读取输入
为了获取不同的值,需要从输入设备获取;一般输入设备是键盘,读取数值语法如下
Scanner input=new Scanner(System.in); //其中input是自定义名字
Scanner对象方法5、
1)变量
变量是用来存储程序中用到的数据,变量的值是可以修改的;变量是特定类型的的数据,为了给数据分配合适的存储空间,需要先进行变量声明
例如:
int one
double two
定义相同类型变量,可以用逗号分隔开,写为一行:int a,b,c;
变量通常是有初始值的:int i=10;
2)常量
常量就是在程序中不改变的数据,比如在运算求值的过程中,需要重复用到一个数值,就可以把这个数值定义未常量,重复使用
语法如下:
final datatype CONSTANTNAME=VALUE;
例如:
final double PI=3.1415;
6、运算符
1)运算顺序:括号内–乘法–除法–顺序加减法
除号(/)和取余号(%)
2)简洁运算符 注意:在简洁运算符中是不可以存在空格的
i=i+8; 可以写为 i += 8;
更简洁的运算符:++,–;自增1,自减1 可放置在变量前和后;
3)转义字符
想输出System.out.println(“he is+“good boy””);
这句话是运行不了的,因为在程序语法中,第二个双引号是字符串结束的标识,剩余语句无法输出
正确写法是需要加上转义字符
System.out.println(“he is+“good boy””);
boolean数据类型
public class Addition {
public static void main(String[] args){
int number1=(int)(System.currentTimeMillis()%10);
int number2=(int)(System.currentTimeMillis()*7%10);
Scanner sc=new Scanner(System.in);
System.out.print(“what is” + number1+ “+” +number2);
int answer=sc.nextInt();
System.out.println(number1+"+"+number2+"="+answer+“is”+(number1+number2answer));
}
}
注意:相等的比较运算符是双等号,单个等号是赋值运算符
布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假,boolean数据类型用于声明布尔变量
语句类型
单向if语句
if(布尔表达式)
{
语句(组);
}
举例:
public class SimpleIfDemo {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println(“请输入:” );
int number=sc.nextInt();
if(number%50){
System.out.println(“HiFive”);
}
if(number%20){
System.out.println(“HiEven”);
}
}
}
双向if语句、嵌套if语句
注意:若程序中写为if if else语句,则else语句属于最近的if语句
if(布尔表达式)
{
布尔表达式为真时执行语句(组);
}
else{
布尔表达式为假时执行语句(组)
}
举例
public class SimpleIfDemo {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println(“请输入:” );
int number=sc.nextInt();
if(number%50){
System.out.println(“HiFive”);
}
else if(number%2==0){
System.out.println(“HiEven”);
}
else{
System.out.println(“Hino”);
}
}
7、循环
while循环
while(循环继续条件){
//循环条件
语句(组)
}
举例:猜数字
详情请看文件GuessDig
关键字:break和continue
这两个都可在循环语句中使用,为循环提供额外的控制
break语句通常都是配合if语句使用。要特别注意,break语句总是跳出自己所在的那一层循环
for (int i=1; i<=10; i++) {
System.out.println("i = " + i);
for (int j=1; j<=10; j++) {
System.out.println("j = " + j);
if (j >= i) {
break;
}
}
// break跳到这里
System.out.println(“breaked”);
}
break会跳出当前循环,也就是整个循环都不会执行了。而continue则是提前结束本次循环,直接继续执行下次循环
public class Main {
public static void main(String[] args) {
int sum = 0;
for(int i = 0;i < 100;i++) {
sum += i;
if (sum % 2 == 0) {
continue;
}
System.out.println(sum);
}
}
}for循环
for循环一般使用一个变量来控制循环体的执行次数,以及循环什么时候终止;这个变量称为控制变量
提示:控制变量必须在循环控制结构体或循环体前说明;如果此变量仅在循环体中使用,在for循环初始动作时声明是最好的;如果在循环体中声明变量,循环体外是不可用的
语法如下:
for(初始操作;循环继续条件;迭代后操作)
{
//循环体
语句(组)
}嵌套循环
由一个外层循环和一个或多个内层循环组成的循环设计策略:
1)确定需要重复的语句
2)将需要循环的语句放在一个循环体中
3)为循环继续条件编码,并未控制循环语句加适合的语句GUI对话框控制循环
public class SentinelVulueDialog {
public static void main(String[] args) {
int sum=0;
int option= JOptionPane.YES_OPTION;
while(option==JOptionPane.YES_OPTION){
String dataString=JOptionPane.showInputDialog(“请输入一个value值:”);//GUI输入框
int data=Integer.parseInt(dataString);
sum +=data;
option=JOptionPane.showConfirmDialog(null,“continue ?”);
}
JOptionPane.showMessageDialog(null," the message is" +sum);
}
}8、方法
定义方法语法如下:
修饰符+返回值类型+方法名+(参数列表){
//方法体
}
8.1定义方法:定义在方法头中的变量称为形式参数,简称形参;参数像是占位符,当调用方法时,就给参数传递一个值,这个值称为实际参数;参数列表指明参数的类型、顺序及个数;参数是可选的,方法中也可不包含形参
提示:在形参列表中,需要对每一个参数进行独立的数据类型声明8.2调用方法
public class TestMax {
public static void main(String[] args) {
int a=2;
int b=5;
int k = max(a,b);
System.out.print(“最大值”+a +","+b +“是”+ k);
}
public static int max(int i,int j){
int result;
if(i>j){
result=i;
}else{
result=j;
}
return result;
}
}
提示:对带返回值而言,return语句是必需的,如果不写return值,会报编译错误
方法可带来代码的共享和重用;除了可以在当前文件调用外,其他类也可调用,可以通过(类名.方法名)调用main方法
main方法和其他方法区别:
main方法是由虚拟机调用的;main方法的方法头都是一样的;修饰符是public和static,返回值类型是void,方法名是main;String【】表明是string类型的数值
8.3void方法
void方法不返回任何值,对void方法的调用必须是一条语句
public class TestReturnGrade {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
double a=sc.nextDouble();
double b=sc.nextDouble();
getGrade(a);
getGrade(b);
}
public static void getGrade(double score){
if(score>90){
System.out.println(“this is score”+ " A");
}
else if(score>80){
System.out.println(“this is score”+" B");
}
else if(score >60){
System.out.println(“this is score”+" C");
}else{
System.out.println(“this is score”+" D");
}
}
}
8.4几个常用方法
Math数学类:包含基本数学函数所需的方法
三角函数方法
public static double sin(double a)
public static double cos(double b)等等
指数函数方法
public static double exp
min,max和abs方法
返回两个数(int、long、float、double型)的最大值和最小值
例如 max(3,4,5)返回5,min(2,3)返回2
abs(int、long、float、double型),返回一个绝对值
9、程序设计风格
1)使用小写字母命名变量和方法;如果包含多个单词,第一个单词小写之后每个单词第一个字母大写,其余小写
2)类名中每个单词首字母大写
3)大写常量中的所有字母;若为多个单词,则用下划线展示
需要注意的是,对类命名试不要使用java库中已使用的名称,例如MATH类
运行错误一般是因为逻辑上有问题,程序可以通过 编译,也就是可以生成 .class 文件,但是在运行的时候发生报错,例如数组越界、空指针(java.lang.NullPointException),除法运算时除数为0 等
编译错误:一般是语法上存在问题,编译过不去
逻辑错误:程序运行后,没有得到设计者预期的结果,这就说明程序存在逻辑错误。这种错误在语法上是有效的,但是在逻辑上是错误的
快速创建主函数的命令:psvm