java 成员变量和局部变量的区别

本文探讨了Java编程中常见的问题,如将对象存储在数组中导致ArrayStoreException错误的原因,解析了成员变量与局部变量的区别,并介绍了接口定义、类的构造方法以及final修饰符的用法。

将对象的存储在数组中会报错

    public static void main(String[] args) {
        ArrayList<Goods> arrayList = new ArrayList<Goods>();
        init(arrayList);
        int size = arrayList.size();
        String[] array = (String[] )arrayList.toArray(new String[size]);
        System.out.println(Arrays.toString(array ));
    }
    // 错误信息
    Exception in thread "main" java.lang.ArrayStoreException

04成员变量和局部变量的区别

  • 区别一:定义的位置不同
    • 定义在类中的变量是成员变量
    • 定义在方法中或者{}语句里面的变量是局部变量
  • 区别二:在内存中的位置不同
    • 成员变量存储在对内存的对象中
    • 局部变量存储在栈内存的方法中
  • 区别三:声明周期不同
    • 成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失
    • 局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失
  • 区别四:初始化不同
    • 成员变量因为在堆内存中,所有默认的初始化值
    • 局部变量没有默认的初始化值,必须手动的给其赋值才可以使用。

接口的定义

  • A: 接口的定义
    与定于类的class 不同, 接口定义时需要使用interface 关键字

  • B :定义的格式
    js public interface 接口名 { 抽象方法1; 抽象方法2; }

类的构造方法

  • 累的构造方法

        public class Person {
            private int age;
            private String name;
    
            // 私有無參數的構造方法, 及外界不能通過new Person() 語句創建本類對象
    
            private Person() { }
            Person(int newAge , String newName ) {
                age = newAge;
                name = newName;
            }
            public  void  speak() {
                System.out.println("name =" + name + ", age = " +  age );
            }
        }

final修饰类不可以被继承,但是可以继承其他类。

    class Yy {}
    final class Fu extends Yy{} //可以继承Yy类
    class Zi extends Fu{} //不能继承Fu类

转载于:https://www.cnblogs.com/he-zhi/p/8760361.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值