面向对象的三大特性
1、封装
首先,属性可用来描述同一类事物的特征,行为可描述一类事物可做的操作,封装就是要把属于同一类事物的共性(包括属性与行为)归到一个类中,以方便使用。
两种方法:
get()有返回值、无参数。 赋值:对象.set()。
set()没有返回值、可有多个参数。 输出:对象.get()。
构造方法:
没有返回值、多个参数,不同参数调用不同对象、方法名与类名相同。
例子:
package texing; public class Dom { private String dog; //无参构造 public Dom(){ } //有参构造 public Dom(String dog){ this.dog=dog; } public String getDog() { return dog; } public void setDog(String dog) { this.dog = dog; } }
2 、继承【extends】
2.1、概念:
使用已存在的类的定义作为基础建立新类的技术。新类的定义可以增加新的数据或新的功能。也可以用父类的功能,但不能选择性地继承父类。
2.2、覆盖:
一定要和父类的方法名、或者属性一样、但内容不一样叫做重写父类!就是父类的方法、属性被子类覆盖了!
2.3、super 关键字:
可以调用父类的成员方法、和有、无参构造方法等、但一定要放在方法的首语句。
2.4、重载:
在使用重载时只能通过不同的参数样式。对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。
继承例子:
Pets一个类例子:package pets; /* * Dog 类 继承 Pets 类 * */ public class Dog extends Pets{ private String dog; public Dog(String dog){ this.dog=dog; } public Dog(){ } public String toString (){ return dog; } }
package pets; /* * 超类 */ public class Pets { }
3、多态:
3.1理解:
必须是类与类之间只有关系,要么继承或实现。指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。
父类的引用指向了自己的子类对象Fu fu1 = new Zi() 向上型 。
父类的引用也可以接收自己的对象Fu fu2 = new Fu() 向下型 。
优点:多态的出现大大的提高了程序的扩展性。
弊端:只能使用父类的引用访问父类的成员。
4、Object 类:
是所有类的父类、是java最高层的类。
常用方法:
getClass().getname():
返回对象执行的Class实例、调用getname()方法可以获取得类的名称。
toString()方法:
是将一个对象返回为字符串的形式。
equals()方法:
是布尔型,用法比较两个的对象引用的地址是否相等,例子:v1.equals(v2)。