java是面向对象(oop)设计的,oop注重于数据而算法次之。
类(class)是对象的模板。由类构造(construct)对象的过程称为创建类的实例(instance);所有类都继承于Object类;
对于每个特定的类实例(对象)都有一组特定的实例域值。这些值的集合就是这个对象的当前状态(state)。
构造器于普通方法有一个很重要的不同。构造器总是伴随着new操作符的执行被调用,而不能对一个已经存在的对象调用构造器来达到重新设置实例域的目的。
构造器的显性特性:构造器与类同名、每个类可以有一个以上的构造器、构造器参数没有限制、构造器无返回值、构造器总是伴随new操作一起调用;
显示参数和隐式参数(所有方法:包括普通方法和构造器):在此之前:需要知道方法的作用:方法适用于操作对象以及存取它们的实例域。
隐式参数(implicit):不写在方法括弧内的参数:这个参数是出现在方法名前的类对象。关键字this表示隐式参数。不出现在方法声明中;
显式参数(explicit):写在括号里的参数;
类之间的关系:依赖、聚合、继承、接口实现、关联、直接关联
对象与对象变量:Date date=new Date();中等式右边是对象,而date是对象变量。一个对象变量并没有实际包含一个对象,而仅仅引用一个对象。
在Java中,任何对象变量的值都是对存储在另外一个地方的一个对象的引用。new操作符的返回值也是一个引用。这个引用存储在对象变量中。
final修饰符大都应用于基本类型或者不可变类的域,如果用于某个可变的类,final修饰符可能造成读者混乱,因为引用不可变,但是引用指向的地址的内容是可变的,final在此时没有任何意义。
静态域(static):属于类不属于任何对象
静态方法:不能面向对象实施操作的方法。class.staticMethodName,静态方法参数不能含有隐式参数,理由就是前面一句。
在类第一次加载时就会进行静态域的初始化;
静态导入:static的一个不常用的方法,Math.radom()方法;import static java.math.Math.*后可以将Math.radom()方法写为radom()方法,有些时候会使代码更加清晰;
作用域:public 公有域、private :本类私有域、default:包作用域、protected:本类及其子类