【Java学习】Static静态、Arrays类和Math类

Static静态

一旦使用static修饰成员方法,那么这就称为了静态方法。静态方法不属于对象,而属于类

如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它
如果有static关键字,那么不需要创建对象,直接通过类名称来使用它

无论是成员变量,还是成员方法。如果有了static,都推荐使用类名称进行调用
静态变量:类名称.静态变量
静态方法:类名称.静态方法()

注意事项:
1.静态不能直接访问非静态
原因:在内存当中是【先】有的静态内容,【后】有的非静态内容
“先人不知道后人,后人知道先人”
2.静态方法中不能用this方法
原因:this代表当前对象,通过谁调用的方法,谁就是当前对象

public class Demo02StaticMethod {
    public static void main(String[] args) {
        Myclass obj = new Myclass();

        obj.method();
        // 对于静态方法来说,可以通过对象名进行调用,也可以直接通过类名称赖来调用
        obj.staticMethod();  // 正确,不推荐,这种写法在编译之后也会被javac翻译成为“类名称.静态方法名”
        Myclass.staticMethod(); // 正确, 推荐
    }
}
// Myclass类
public class Myclass {
    int num;
    static int numStatic;
   // 静态方法
    public static void staticMethod(){
        System.out.println("这是一个静态方法");
//        System.out.println(num);  错误写法,静态不能访问非静态
        System.out.println(numStatic);
    }
    // 成员方法
    public void method(){
        System.out.println("这是一个成员方法");
        System.out.println(num);
        System.out.println(numStatic);
    }

}

静态代码

public class 类名称 {
    static {
        // 静态代码块的内容
    }
}

特点: 第一次用到本类时,静态代码块执行唯一一次
静态内容总是优先于非静态
典型用途:
用来一次性的对静态成员变量进行赋值

public class Demo04Static {
    public static void main(String[] args) {
        Person  one = new Person();
        Person  two = new Person();
    }
}
// Person类
public class Person {
    static {
        System.out.println("静态代码块执行");
    }
    public Person(){
        System.out.println("构造方法执行");
    }
}
//运行结果
静态代码块执行
构造方法执行
构造方法执行

Arrays类

常用方法
public static String toString(数组): 将参数数组变成字符串(按照默认格式:[元素1,元素2,元素3..])
public static void sort(数组):按照默认升序(从小到大)对数组的元素进行排序

练习题

将一个随机字串中的所有字符升序排列,并倒序打印

import java.util.Arrays;
import java.util.Scanner;

public class Demo02ArraysTest {
    public static void main(String[] args) {
        Scanner src = new Scanner(System.in);
        String array1 = src.next();        // 输入字符串

        char[] chars = array1.toCharArray();  // 将字符串转换为字符数组
        Arrays.sort(chars);               // 升序排列

        for (int i = chars.length - 1; i >= 0; i--) {
            System.out.print(chars[i]);
        }
    }
}

Math类

常用方法
public static double abs(double num):获取绝对值,有多种重载
public static double ceil(double num):向上取整
public static double floor(double num):向下取整
public static long round(double num):四舍五入

Math.PI代表近似的圆周率(double)

练习题

计算 -10.8到5.9 之间,绝对值大于6或者小于2.1的整数有多少个

public class Demo04MathPractice {
    public static void main(String[] args) {

        double min = -10.8;
        double max = 5.9;
        int count = 0;

        for (double i = Math.ceil(min);i<max;i++){
            if (Math.abs(i)>6 || Math.abs(i)<2.1){
                System.out.println(i);
                count++;
            }
        }
        System.out.println("总共有:" + count);
    }
}

常用的IDEA快捷键

快捷键 作用
Alt+Enther 导入包,自动修正代码
Alt + Insert 代码自动生成,如生成对象的 set / get 方法,构造函数,toString() 等
Ctrl+Y 删除光标所在行
Ctrl+Alt+L 格式化代码
Ctrl+/ 单行注释
Ctrl+Shift+/ 选中代码注释,多行注释,再按取消注释
Shift+Enter 向下插入新的一行
Ctrl + Shift + Enter 自动结束代码,行末自动添加分号
发布了19 篇原创文章 · 获赞 20 · 访问量 734

猜你喜欢

转载自blog.csdn.net/sy140823/article/details/104597354