java 面向对象编程整理一
三大特点:
封装:Encapsulation
继承:Inheritance
多态:Polymorphism
创建对象:
Person per = null; //声明对象
per = new Person(); //实例化对象
或
Person per = new Person(); //声明+实例化对象
对象的属性存放在堆内存之中。
对象的方法存放在代码区之中,面向全局。
NullPointerException是java的常见错误,表明有空指向。
一个栈内存可以分配多个堆内存空间
如:
Person per1 = null;
Person per2 = null;
per1 = new Person();
per2 = per1;
则per2中的属性改变后per1的内容也改变!
private是对属性的封装方法,他对属性起到了保护的作用!
构造方法中不能有return 值。
声明对象时并不会调用构造方法。
构造方法不是必须的
一个类中如果没有明确声明一个构造方法,则系统自动生成一个无参的什么都不做的构造方法
如果在类中声明了带参数的构造方法,则系统不会再次声明无参构造方法。
构造方法可以重载
只要构造方法的参数类型或数目不同,则可以重载。
构造器和方法在下面三个方面区别:修饰符,返回值,命名。
1。和方法一样,构造器可以有任何访问的修饰: public, protected, private或者没有修饰(通常被package 和 friendly调用). 不同于方法的是,构造器不能有以下非访问性质的修饰: abstract, final, native, static, 或者 synchronized。
2。返回类型也是非常重要的。方法能返回任何类型的值或者无返回值(void),构造器没有返回值,也不需要void。
3。两者的命名。构造器使用和类相同的名字,而方法则不同。按照习惯,方法通常用小写字母开始,而构造器通常用大写字母开始。构造器通常是一个名词,因为它和类名相同;而方法通常更接近动词,因为它说明一个操作。
匿名对象
就是缺少了栈内存空间的使用来声明对象,即直接使用new Person().tell();