Java语法

1.Java类的建立:

  public class+ 类的名字{

}

2.类中的方法的建立:

  public static void main(String[] args){  代码逻辑

}

3.系统输出:

  System.out.println(输出的变量)

4.变量和赋值

  数据类型+变量=赋值

  数字类型:byte   short   int(常用)  long(赋值后面+L)      float(赋值后面+F)   double     char    boolean

     public class Damo{

    public static void main(String[] args ){

           byte a =12;

      System.out.println(a);

      int b =656;

      System.out.println(b);

      char c ='我';

      System.out.println(c);

    }

  }

5.数据类型转换:

①范围小的可以自动转换成范围大的数据类型    

  public class Datetran{
    public static void main(String[] args){
      double a = 1000;
      System.out.println(a);
       int b = 100;
      double i = b;
      System.out.println(i);
    }
  }

②强制转换(范围大的数据类型转换成范围小的数据类型)

  转换公式:范围小的数据类型  变量 = (范围小的数据类型) 范围大的数据类型值

  public class Datetran_1{
    public static void main(String[] args){
      double d = 3.14;
      int i =(int)d;
      System.out.println(i);
     }
   }

6.运算符   

   +     正号 +3 3    加 2+3= 5 连接字符串 “中”+“国” “中国”
         -     负号 int a=3;-a -3     减 3-1 2
    *          乘 2*3 6
       /     除 5/2 2
   %    取模 5/2 1
   ++   自增 int a=1;  a++/++a 2
   --    自减 int b=3;a--/--a 2
 注意事项
*a:加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串。
*b:除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除。
*c:“%”为整除取余符号,小数取余没有意义。结果符号与被取余符号相同。
*d:整数做被除数,0不能做除数,否则报错。
*e:小数做被除数,整除0结果为Infinity,对0取模结果为NaN

7.引用类型数据(Scanner、Random)

  Scanner:使用键盘输入

  Random:产生随机数

  1.导包 

  2.创建类的变量(公式:类型  变量名 = new 类型())

  3.使用类的功能(公式:变量.功能名())

  import java.util.Scanner;(导入包:import+包的路径)
  public class Datetype{
    public static void main(String[] args){
    Scanner sc = new Scanner(System.in); (创建类的变量 System.in:接受系统输入 )
    int i = sc.nextInt();(使用类的功能 nextint是接受键盘整数输入)
    System.out.println(i+1);
    }

  } 

    import java.util.Random;
    public class RandomDemo{
      public static void main(String[] args){
        Random ran = new Random();
        int i = ran.nextInt(100);
        System.out.println(i);

      }

    }

    问题? 产生随机数,范围 1-100之间
    nextInt(100) 0-99 + 1

    next()这个关键字功能:接受键盘字符串输入

8.流程控制语句

 if语句格式:

  if (条件){if的执行体

  }

  public class IfDemo{
    public static void main(String[] args){
      int i = 5;
      if (i==5){
      System.out.println("鏉′欢涓烘");
      i++;
    }
    System.out.println(i);
    }
  }

     if...else语句格式:

    if(){if的执行体

    }else {else的执行体

    } 

  public class IfDemo{
    public static void main(String[] args){
      int i = 14;
      if(i % 2 == 0){
      System.out.println(i+" 是偶数");
      }else{
      System.out.println(i+" 是奇数");
      }
    }
  }

    if...else if...else语句格式:

    if(条件){if

    }else if(条件){if的执行体

    }else if(条件){if的执行体

    }else{else的执行体

    } import java.util.Scanner;

 public class IfDemo{
  public static void main(String[] args){
    Scanner sc =new Scanner(System.in);
    int grade = sc.nextInt();
    if (grade>=85){
    System.out.println(grade+" 学生成绩为优");
    }else if (grade>=75){
    System.out.println(grade+" 学生成绩为良");
    }else if (grade>=60){
    System.out.println(grade+" 学生成绩为及格");
    }else{
    System.out.println(grade+" 学生成绩为差");
    }
  }
 }

9.三元运算符(判断条件只有一个时可以和if转换)

  格式:判断条件?表达式1:表达式2

  public class IfDemo_1{
    public static void main(String[] args){
      int i = 9;
      int j = 6;
      int k = i>j ?i : j;
      System.out.println(k+" 是最大值");
    }
  }

10.循环语句

  While循环格式:

    while(条件){循环体

    }

 public class WhileDemo{
   public static void main(String[] args){
     int i = 0;
     int sun =0;
     while(i <10){
       i++;
       sun=sun+i;
       System.out.println(i);
     }
     System.out.println(sun);
   }
 }

  for循环格式:

    for(初始化变量;条件;增量){

      循环体

    }

  public class ForMemo{
    public static void main(String[] args){
      int sun =0;
      for(int i=0;i<10;i++){
      System.out.println(i);
      sun=sun+i;
      };
      System.out.println(sun);
    };
  }

  do...while循环格式:

    do{

      循环体

      }while(条件);

  public class ForMemo{
    public static void main(String[] args){
      int i =0;
      int sun =0;
      do{
      sun=sun+i;
      i++;
      }while(i<=100);
      System.out.println(sun);
    };
  }

  注意;无条件执行一次(特点)

  嵌套循环格式:

    for(){

      for(){

        }

      }

  注意:总循环=内循环*外循环(外控制行数,内控制每行个数)

  public class ForForDemo{
    public static void main(String[] args){
      for(int i = 0 ; i < 9 ; i++){
        for(int j = 0; j < i+1 ;j++){
          System.out.print("* ");
          }
        System.out.println();
      }
     }
  }

11.跳转语句(break、continue)

    break:作用于循环中,终止循环的作用

    continue:在循环中,终止本次循环,开始下一次循环

12.swtich选择语句

  swtich格式:

    swtich(表达式){

      case  常量1 :

        要执行的语句

      break;

      case  常量2 :

        要执行的语句

      break;

      case  常量3 :

        要执行的语句

      break;

      default:

        要执行的语句

      break;

    }

    执行流程:表达式和case后面的常量比较,那个case相同执行那个case

  

  import java.util.Scanner;
  public class SwitchDemo{
    public static void main(String[] args){
      Scanner sc = new Scanner(System.in);
      int week = sc.nextInt();
      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;
        default:
        System.out.println("请正确输入");
        break;
        }

      }
   }

  注意:case具有穿透性

13.数组函数

  定义数组容器的要素: 数据类型 、大小 、存储的个数

  数组的公式:

    数据类型  []  变量名 = new  数据类型 [存储元素的个数];

    new  创建容器的关键字

    数组的编号最小值0,最大值为长度-1,专业名词:索引

    数组的长度    使用属性:数组名.length

    数组中的元素默认都为0,数组元素的赋值:数组名[元素编号]=要赋的值

    定义数组时赋值:数据类型  []  变量名 = new  数据类型 []{要赋的值};  注意:new后面的[]不能输入

            数据类型  []  变量名={要赋的值};(最常用)       

      public class ArrayDemo{
        public static void main(String[] args){
          int[] arr = new int[5];
          arr[1] =3;
          int[] arr1 =new int[]{1,5,7,6,9,3};
          int[] arr2 ={2,4,6,8,10,18};
          System.out.println(arr[1]);
          System.out.println(arr.length);
          System.out.println(arr1[2]);
          System.out.println(arr2[3]);
         }
      }

     数组的遍历(很常用)

    public class ArrayDemo_1{
      public static void main(String[] args){
        int[] arr ={1,5,6,9,15,19,20,58,66,88};
        for(int i = 0;i<arr.length;i++){
        System.out.println(arr[i]);
        }
      }
    }

      数组中取最大最大值    

    public class ArrayDemo_1{
      public static void main(String[] args){
        int[] arr ={1,5,6,9,15,88,20,58,67,80};
        int max =arr[0];
        for(int i = 1;i<arr.length;i++){
          if(max<arr[i]){
            max=arr[i];
          }
        }
        System.out.println(max);
      }
    }

      二维数组定义、赋值、遍历

    二维数组的定义和赋值:数据类型 [] [] 变量名 ={{数组值},{数组值},{数组值}};

    遍历;使用for...for...循环的功能实现

    public class ArrayArrayDemo{
      public static void main(String[] args){
        int [][] arr ={{1,3,6,},{4,12,8},{45,66,12,23}};
        System.out.println(arr[1][2]);
        for(int i = 0;i<arr.length;i++){
          for(int j =0;j<arr[i].length;j++){
          System.out.print(arr[i][j]);  //print表示打印不换行
          }
          System.out.println();
        }
      }
    }

14.方法功能

  方法的定义格式:修饰符  返回值类型  方法名(参数列表){

  方法的功能主体

  return;

  }

  方法被调用:方法名(变量的值)

    public class MothodDemo{
      public static void main(String[] args){
        int area = GetArea(6,7);  //调用方法,入口点main的方法一定要存在才能调用

                   System.out.println("面积是: "+area );

      }
      public static int GetArea(int w,int H){
      return w * H;
      } //方法的定义

    }

    

    方法的重载特殊:

      在同一个类中,允许出现同名的方法,只要方法的参数列表不同即可,这样方法就是重载
      参数列表不同: 参数的个数,数据类型,顺序

      方法重载的注意事项
      1. 参数列表必须不同
      2. 重载和参数变量名无关
      3. 重载和返回值类型无关
      4. 重载和修饰符无关
      技巧: 重载看方法名和参数列表

      public class MethodOverLoadDemo{
        public static void main(String[] args){
          System.out.println();
          double sum = getSum(2.3,3.5);
          System.out.println(sum);
        }
        public static int getSum(int a,int b){
          System.out.println("两个int参数");
          return a+b;
        }
        public static int getSum(int a,int b,int c){
          System.out.println("三个int参数");
          return a+b+c;
        }
        public static double getSum(double a,double b){
          System.out.println("两个double参数");
          return a+b;
        }

      }

      调用方法的参数传递

      方法参数是基本数据类型:

·      注意:方法返回值一定要赋值才可以改变原来的值,没有赋值则返回值无效,即是程序运行和方法无关

    public class MethodDemo2{
       public static void main(String[] args){
        int a = 1;
        int b = 2;
        Change(a,b);
        System.out.println(a); //1
        System.out.println(b); //2
      }
      public static void Change(int a,int b){
        a=a+b;
        b=b+a;
      }
    }

      

      方法参数是引用类型:
         注意:传递的是内存地址!!!

    public class MethodDemo3{

      public static void main(String[] args){
        int[] arr = {1,2,3,4};
        System.out.println(arr[2]); // 3
        change(arr);
        System.out.println(arr[2]); // 100
      }

      public static void change(int[] arr){
      arr[2] = 100;
      }

    }

15.自定义类

    使用类的形式,对现实中的事物进行描述   1.事物: 方法,属性  2.方法: 这个事物具备的功能  3.属性: 变量

格式:
  public class 类名{
    属性定义
    修饰符 数据类型 变量名 = 值

    方法定义
    修饰符 返回值类型 方法名(参数列表){
    }
  }

    要求: 使用Java中的类,描述生活中的手机这个事物
    手机事物,具备哪些属性, 属于他自己的特性
    颜色,品牌, 大小

    public class Phone{
    String color ;
    String brand ;
    double size ;
    }

    调用类使用其功能:

    创建引用类型变量的格式
    数据类型 变量名 = new 数据类型();
    实现引用类型的步骤
    1: 导入包 , 类都是在同一个文件夹,不需要导入包
    2: 创建引用类型的变量
    3: 变量.类型中的功能    

      public class TestPhone{

      public static void main(String[] args){
        Phone p = new Phone();
        System.out.println(p); //输出内存的地址
        p.color = "土豪金";
        p.brand = "爱立信";
        p.size = 5.0;
        System.out.println(p.color+" "+p.brand+" "+p.size);
         }

       }

    ArrayList集合的使用
    1. 导入包 java.util包中
    2. 创建引用类型的变量
    数据类型< 集合存储的数据类型> 变量名 = new 数据类型 <集合存储的数据类型> ();
    集合存储的数据类型: 要将数据存储到集合的容器中
    创建集合引用变量的时候,必须要指定好,存储的类型是什么
    ArrayList<String> array = new ArrayList<String>();
    3. 变量名.方法
    注意: 集合存储的数据,8个基本类型对应8个引用类型
    存储引用类型,不存储基本类型
    import java.util.ArrayList;
    public class ArrayListDemo{
      public static void main(String[] args){
      ArrayList<String> array = new ArrayList<String>();
      ArrayList<Integer> array2 = new ArrayList<Integer>();
      ArrayList<Phone> array3 = new ArrayList<Phone>();
      }
    }

    集合的遍历,增加,获取

    集合的索引从0开始,到 size()-1
    方法get(int index)
    import java.util.ArrayList;
    public class ArrayListDemo_2{
      public static void main(String[] args){
        ArrayList<Integer> array = new ArrayList<Integer>();
        array.add(121);
        array.add(125);
        array.add(123);
        array.add(120);
        array.add(128);
        for(int i = 0 ; i < array.size(); i++){
        System.out.println( array.get(i) );
        }
      }  
    }

    集合的增删改查

    add(int 索引,存储的元素) 将元素添加到指定的索引上

    set(int 索引,修改后的元素) 将指定索引的元素,进行修改
    remove(int 索引) 删除指定索引上的元素
    clear() 清空集合中的所有元素
    import java.util.ArrayList;
    public class ArrayListDemo_3{
      public static void main(String[] args){
        ArrayList<Integer> array = new ArrayList<Integer>();
        array.add(1);
        array.add(2);
        array.add(3);
        array.add(4);
        array.add(2,7);
        array.set(0,10);
        array.remove(4);
        array.clear();
        for(int i = 0 ; i < array.size(); i++){
        System.out.println( array.get(i) );
        }
      }
    }

  

posted @ 2019-05-06 20:37  忙路  阅读(100)  评论(0)    收藏  举报