一、前期准备

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