Java中的对象、常量、定义域【个人回忆总结版】

原创
小哥 3年前 (2022-11-16) 阅读数 41 #大杂烩

Java中的变量、常量、作用域【个人回顾总结版】

一、变量

变量:暂存位置——程序中的最基本存储单元
命名:数据类型 变量名=值 eg:int a=10; 

1.1 变量分类

1.2 局部变量

局部变量:存在于 方法里面(main方法和其他普通方法都可) 必须先声明和初始化值 才能用

实战案例如下:

public class MyClass {

    /**
     * main方法  程序的主类
     * @param args
     */
    public static void main(String[] args) {
        /**
         * 局部变量:存在于 方法里面(main方法和其他普通方法都可)
         *      必须先声明和初始化值 才能用
         */
        String name="李";
        /**
         * 因为上面声明并且给予了name初始化值 所以 这里才能输出
         */
        System.out.println(name);

    }

    /**
     * 其他方法
     */
    public void add(){
        /**
         * 局部变量 也可以写在这里面
         */
    }
}

1.3 实例变量

实例变量:从属于对象 存在于类里面但不在方法里面

实战案例如下:

(1)给实例变量赋值

public class MyClass {
    /**
     * 实例变量 :从属于对象  存在于类里面但不在方法里面
     */
    String name;
    int age;

    /**
     * main方法  程序的主类
     * @param args
     */
    public static void main(String[] args) {

        /**
         * 实例变量定义在类中,但不在方法中,并且实例变量从属于对象。
         *于是 在方法中使用的时候 需要先创建对象,然后根据对象来调用里面的变量
         */
        MyClass myClass = new MyClass();
        myClass.name="李李李";
        myClass.age=10;
        System.out.println(myClass.name);
        System.out.println(myClass.age);

    }

    /**
     * 其他方法
     */
    public void add(){
        /**
         * 局部变量 也可以写在这里面
         */
    }
}


(2)不给实例变量赋值,也会有默认值

```csharp
public class MyClass {
    /**
     * 实例变量 :从属于对象  存在于类里面但不在方法里面
     */
    String name;
    int age;

    /**
     * main方法  程序的主类
     * @param args
     */
    public static void main(String[] args) {

        /**
         * 实例变量定义在类中,但不在方法中,并且实例变量从属于对象。
         *于是 在方法中使用的时候 需要先创建对象,然后根据对象来调用里面的变量
         */
        MyClass myClass = new MyClass();
//        myClass.name="李李李";
//        myClass.age=10;
//        System.out.println(myClass.name);
//        System.out.println(myClass.age);
        /**
         * 当然上面如果不给予实例变量初始值 也会有一个默认值
         */
        System.out.println(myClass.name);
        System.out.println(myClass.age);

    }

    /**
     * 其他方法
     */
    public void add(){
        /**
         * 局部变量 也可以写在这里面
         */
    }
}

如果不进行初始化,就会有默认值。
所有的数值类型 初始化一般都是0/0.0
布尔值 默认是false
除了8大基本类型以外 其他的默认值都是null

1.4 类变量

public class MyClass {
    /**
     *类变量 使用static关键字
     */
    static double salary=2500;

    /**
     * main方法  程序的主类
     * @param args
     */
    public static void main(String[] args) {
        /**
         * 因为salary定义的是一个类变量 是随着类的出现而出现的
         * 这里不用创建对象 直接调用
         */
        System.out.println(salary);

    }

    /**
     * 其他方法
     */
    public void add(){
        /**
         * 局部变量 也可以写在这里面
         */
    }
}


三种变量写在一个类中进行对比

public class MyClass {
    /**
     *类变量 使用static关键字
     */
    static double salary=2500;

    /**
     * 实例变量 :从属于对象  存在于类里面但不在方法里面
     */
    String name;
    int age;

    /**
     * main方法  程序的主类
     * @param args
     */
    public static void main(String[] args) {

        /**
         * 实例变量定义在类中,但不在方法中,并且实例变量从属于对象。
         *于是 在方法中使用的时候 需要先创建对象,然后根据对象来调用里面的变量
         */
        MyClass myClass = new MyClass();
        myClass.name="李李李";
        myClass.age=10;
        System.out.println(myClass.name);
        System.out.println(myClass.age);
        /**
         * 当然上面如果不给予实例变量初始值 也会有一个默认值
         */
        System.out.println(myClass.name);
        System.out.println(myClass.age);
        /**
         * 因为salary定义的是一个类变量 是随着类的出现而出现的
         * 这里不用创建对象 直接调用
         */
//        System.out.println(salary);

    }

    /**
     * 其他方法
     */
    public void add(){
        /**
         * 局部变量 也可以写在这里面
         */
    }
}

二、常量

初始化值后,不能再改变值。 所谓常量可以理解为一种特殊的变量,它的值被设定后,在程序运行中不允许被改变。 使用关键字 final 来修饰
常量名一般使用 大写字母 就可以了

public class MyClass {
    /**
     * 定义常量
     */

    final static double PI=3.14;

    public static void main(String[] args) {
        System.out.println(PI);
    }

public class MyClass {
    /**
     * 定义常量
     */

    final double PI=3.14;

    public static void main(String[] args) {
        MyClass myClass = new MyClass();
        System.out.println(myClass.PI);
    }

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门