Java 的类描述了对象的状态和行为。
类的成员变量(状态)一般是私有的,仅能由类本身进行修改,这样可以避免外部的代码改动造成异常数据使得出现意外的情况。
类通过方法(行为)将操作暴露给外部,外部通过调用(及传值)对对象进行修改。
由于传入参数可以是某种类型的任意值,因此方法可以起到检查参数的作用:
public class Person { private int age; public Person(int age) { setAge(age); } public void setAge(int age) { if(age <= 0) { this.age = 1; } else { this.age = age; } } public int getAge() { return this.age; } }
尽可能少的将方法暴露给外部,代码越抽象,越可以避免代码的频繁迭代导致兼容性问题(如接口仅定义要做什么,而不规定怎么做)。
在设计良好的项目中,使用接口可以合理的分配任务,分离业务逻辑和实现过程,使用接口(多态)可以对代码进行迭代升级或者采用新的实现却不用担心过多的代码改动。
类的成员变量是有默认值的(随对象分配在堆上),如 int 类型的默认值是 0,String 类型的默认值是 null,但局部变量(分配在栈上)是没有默认值的,因此使用局部变量前需要先对其进行赋值。
问: 类的成员变量中,int 类型的默认值是 0,那 Integer 作为 int 的包装类,它的默认值是什么
public class Question { private int a; // default 0 private Integer b; }
答:
Java 中的变量包含primitive类型和引用类型,primitive 类型的默认值根据类型不同有不同的默认值,引用类型默认值全部是 null,因此 Integer 的默认值是 null (和 String 一样)
原文:https://www.cnblogs.com/zhshanhe/p/14365342.html