Javaの道--- Day08

2019-10-22-22:28:39

ディレクトリ

  1. 静的静的クラス

  2. スタティックメモリマップ

  3. 静的静的ブロック

  4. アレイ、クラス

  5. Mathクラス


静的静的クラス

  修飾された静的メンバ・メソッドを使用することによって、それは静的メソッドになり、静的メソッドは、オブジェクトではなく、のクラスに属し

  注意:

    1.あなたは、静的なキーワードを変更しない場合は、あなたが最初のオブジェクトを作成し、オブジェクトを通してそれを使用する必要があります。

    2.あなたは、静的なキーワードを変更した場合、あなたは、クラス名から直接それを使用することができ、オブジェクトを作成する必要はありません

  フォーマットを使用します:

    静的変数:クラスの静的変数の名前。

    静的メソッド:静的メソッドのクラス名

  注意事項:

    1.静的直接(非静的コンテンツの後に、最初の静的コンテンツ)非静的にアクセスできません。

    これを使用することができない2.静的メソッド(これは、現在のオブジェクトであると呼ばれる人によって現在のオブジェクトを表します。)

 

以下のためのパッケージ変更demopra; 

パブリック クラスのスタティック{
     公共の 静的な 無効メイン(String []型引数が){
         // まずオブジェクト作成 
        MyClassのMCは= 新しい新しい)のMyClassを(;
         // あなたがコンテンツを使用する前には、静的な静的なキーワードではありません
        mc.method(); 

        / / 静的メソッドのために、それはオブジェクトの名前で呼び出すことができるクラス名を介して呼び出すことができ 
        mc.methodStatic(); // 正しい、この方法で使用することは推奨していない 
        MyClass.methodStaticを(); // 正しい、お勧め

        // オリジナルのためこの方法は、クラス名の中から省略されてもよい
        )MyMethodは(; 
        StaticText.myMethod(); // MyMethodはに等しい(); 
    } 

    パブリック 静的 ボイドMyMethodは(){ 
        System.out.printlnは( "自分の方法" ); 
    } 
}

 

package demopra;

public class MyClass {
    private int num;//成员变量
    private static int numStatic;//静态变量

    //成员方法
    public void method(){
        System.out.println("成员方法执行啦!!!");
        //成员方法可以访问成员变量
        System.out.println(num);
        //成员方法可以访问静态变量
        System.out.println(numStatic);
    }

    //静态方法
    public static void methodStatic(){
        System.out.println("静态方法执行啦!!!");
        //静态方法可以访问静态变量
        System.out.println(numStatic);
        //静态方法不可以访问非静态变量[重点]
//        System.out.println(num);//Non-static field 'num' cannot be referenced from a static context
        //静态方法中不能使用this关键字
//        System.out.println(this);//'demopra.MyClass.this" cannot be referenced from a static context
    }
}

Static内存图

Static静态代码块

  格式:

    public class 类名称{

      static{

        静态代码块内容

      }

    }

  特点:

    1.当第一次用到本类时,静态代码块执行唯一的一次

    2.静态内容总是优先于非静态,所以静态代码块比构造方法先执行

  典型用途:

    用来一次性对静态变量进行赋值

Arrays类

  java.util.Arrays是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作。
  public static string tostring(数组): 将参数数组变成字符串(按照默认格式,[元索1, 元素2,元索...])
  public stotic void sort(数组): 按照默认升序(从小到大)对数组的元素进行排序。
    备注:
      1.如果是数值,sort默认按照升序从小到大
      2.如果是字符串,sort默认按照字母升序
      3.如果是自定义的类型,那么这个自定义的类需要有Comparable或者Comporator接口的支持。

package demopra;

import java.util.Arrays;

public class ArraysTest {
    public static void main(String[] args) {
        //定义一个int数组
        int[] arr = {10,20,30};
        //将int数组按照默认格式变成字符串
        String arr1 = Arrays.toString(arr);
        System.out.println(arr1);//[10, 20, 30]

        int[] arr2 = {50,10,40};
        //按照默认大小进行升序
        Arrays.sort(arr2);
        System.out.println(Arrays.toString(arr2));//[10, 40, 50]

        String[] arr3 = {"c","b","a"};
        Arrays.sort(arr3);
        System.out.println(Arrays.toString(arr3));//[a, b, c]
    }
}

Math类

 

  java.util.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) 。

ckage demopra;

public class MathTest {
    public static void main(String[] args) {
        //获取绝对值
        System.out.println(Math.abs(-23));//23

        //向上取整
        System.out.println(Math.ceil(3.1));//4.0

        //向下取整
        System.out.println(Math.floor(3.9));//3.0

        //四舍五入
        System.out.println(Math.round(3.15));//3

    }
}
package demopra;
/*
    要求:计算对-8.8~11.1数值取绝对值(int)后,大于5或者小于1.1的值的个数
*/
public class MathTest {
    public static void main(String[] args) {
        //符合要求的数量
        int count = 0;
        double max = 11.1;//定义初始值max
        double min = -8.8;//定义初始值min
        for (int i = (int)min; i < max; i++) {
            int abs = Math.abs(i);//取绝对值
            if (abs>5 || abs < 1.1){//取值要求
                System.out.print(i+" ");//-8 -7 -6 -1 0 1 6 7 8 9 10 11 
                count++;
            }
        }
        System.out.println("总共有:"+count);//总共有:12
    }
}

 

おすすめ

転載: www.cnblogs.com/hpcz190911/p/11723538.html