Java基础之问题小结

封装:

1.封装作用:A.保护数据;B.让修改数据的方式变简单

2.封装的基本原则:将实例变量标记为私有的private,并提供公有的getter与setter来控制存取动作。如:

int x = 3+24;

//可以这样写
int x = 3 + one.getSize();

强迫其他程序都得调用setter,可以在setter中执行任何动作,而public就不可以。后面想再修改时也不需要改变其他部分的程序。

class GoodDog {
    private int size;     //将实例变量设定为private的

    public int getSize() {   //通过调用的方式来取得该类型的值
        return size;
    }

    public void setSize(int s) {   //通过调用的方式来存入该类型的值
       size = s;
    }

    void bark(){
        if(size>60){
            System.out.println("Wooof! Wooof!");
        }else if (size>14){
            System.out.println("Ruff! Ruff!");
        }else{
            System.out.println("Yip! Yip!");
        }
    }
}

class GoodDogTestDrive{
    public static void main(String[] args){
        GoodDog one = new GoodDog();
        one.setSize(70);
        GoodDog two = new GoodDog();
        two.setSize(8);
        System.out.println("Dog one: " + one.getSize());
        System.out.println("Dog two: " + two.getSize());
        one.bark();
        two.bark();
    }

}


//运行结果如下:
//Dog one: 70
//Dog two: 8
//Wooof! Wooof!
//Yip! Yip!

ArrayList 和 数组的区别:

1.ArrayList占用的空间是连续的,当元素超过 ArrayList size 的 3/4 时,ArrayList 会扩容,而不是像数组一样是固定长度的。

2.ArrayList 的行为更像 Array,只是它是一个可变长数组。ArrayList是一个list,插到指定位置会比直接加到最后面要慢。

3.LinkedList 链表,它的空间存储是不连续的。它对于中间的插入或删除会比较快。

构造函数:

1.如果没写构造函数,编译器会帮你写一个默认的构造函数,如果自己写了一个构造函数,那么编译器就不会帮你写了。

2.要么自己写不带参数的构造函数,要么构造时必须带参数。

 

posted @ 2021-01-23 21:45  Xiarsu  阅读(38)  评论(0)    收藏  举报