JAVA学习

Java基础

注释

  • 单行注释
  • 多行注释
  • 文档注释
public static void main(String[] args) {
        //单行注释-双斜杠 快捷键ctrl+/
        //多行注释
        /*注
        释*/
        System.out.println("Hello World");
    }

数据类型

Java的数据类型分为两大类

  • 基本类型
  • 数值类型
  • 整数类型:byte、int、short、long
  • 浮点类型:float、double
  • 字符类型:char
  • 布尔类型:boolean
  • 引用类型
  • 接口
  • 数据
public static void main(String[] args) {
    int num1=10;
    byte num2=20;
    short num3=30;
    long num4=30L;//long类型要在数字后面加个l
        
    float num5=50.1F;
    double num6=3.14378478579204;
    
    char name='国';
    boolean flag=true;
    }
}

变量、常量

  • 局部变量
  • 实例变量
  • 类变量
  • 常量:final修饰
public class Demo02 {
    //常量
    static  final  double PI=3.14;
    
    //实例变量:从属于对象;如果不自行初始化,具有默认值
    String name;
    int num;
    //类变量
    static int age;

    public static void main(String[] args) {
        //常量
        System.out.println(PI);
        
        //局部变量 必须声明和初始化
        int a=1;
        System.out.println(a);
        
        //实例变量
        Demo02 demo02=new Demo02();
        System.out.println(demo02.name);
        System.out.println(demo02.num);
        
        //类变量
        System.out.println(age);

    }
}

运算符

同C

  • short类型+byte类型=int类型

包机制

为了更好组织类,java提供了包机制,用于区别类名的命名空间

包语句的语法格式为:

package pkg1[.pkg2[.pkg3...]];

为了能使用某一个包的成员,需要导入该包

import package1[.package2[.package3...]].(classname|*)

JavaDoc

用来写API文档的

package base;

/**
 * @author liu
 * @version 1.0
 */
public class JavaDoc {
    /**
     * 
     * @param name
     * @return
     * @throws  Exception
     */
    public String test(String name) {
        return name;
    }
}

IDEA生成JavaDoc文档

用户交互Scanner

Java工具类,可以获取用户的输入。java.util.Scanner是Java5的新特征。

基本语法:

Scanner s= new Scanner(System.in);

通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

package base;

import java.util.Scanner;

public class Demo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入:");
        if (scanner.hasNext()) {
            String str = scanner.next();
            System.out.println("scanner.next()输入的内容为:" + str);
        }
        scanner.close();

        /*
        请输入:
        hello world
        scanner.next()输入的内容为:hello
        */

        Scanner scanner2 = new Scanner(System.in);
        System.out.println("请输入:");
        if (scanner2.hasNextLine()) {
            String str2 = scanner2.nextLine();
            System.out.println("scanner.nextLine()输入的内容为:" + str2);
        }
        scanner2.close();
        /*请输入:
        hello world
        scanner.nextLine()输入的内容为:hello world*/

        scanner.hasNextInt();//判断输入是不是整数
        scanner.hasNextFloat();//判断输入是不是浮点数
        scanner.hasNextBoolean();//判断输入是不是布尔
    }

}

流程控制

同C

  • 顺序结构
  • 循环结构
  • 选择结构

方法的定义

修饰符 返回值 方法名 (参数类型 参数名){

方法体...

return 返回值

}

方法的重载

重载就是在一个类中,有相同的函数名称,但形参不同的函数。

方法重载的规则:

  • 方法名称必须相同
  • 参数列表必须不同(个数不同或类型不同、参数排列顺序不同等)
  • 方法的返回值可以相同也可以不同
  • 仅仅返回类型不同不足以成为方法的重载

实现理论:

方法名称相同时,编译器会根据调用方法的参数格式、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败则会报错。

可变参数

JDK1.5开始,Java支持传递同类型的可变参数给一个方法

在方法声明中,在指定参数类型后加一个省略号。

一个方法只能指定一个可变参数,它必须是方法的最后一个参数,任何普通参数都必须在它之前声明

package base;

public class Demo04 {
    public static void main(String[] args) {
        Demo04 demo04 = new Demo04();
        demo04.test(1,2,3);

    }
    public void test(int x,int ...i){
        System.out.println(x);
        System.out.println(i[0]);
    }
}