更新时间:2021-08-25 11:35:03 来源:极悦 浏览1045次
面向对象有4个主要原则。它们是封装、数据抽象、多态和继承。这些也被称为面向对象编程的四大支柱。
封装是通过限制对公共方法的访问来隐藏数据实现的机制。实例变量保持私有,访问器方法公开以实现这一点。
例如,我们在下面的代码片段中隐藏了person 类的name和dob属性。
封装——私有实例变量和公共访问器方法。
抽象手段 与任何特定实例无关的概念或想法。使用抽象类/接口,我们表达了类的意图而不是实际的实现。在某种程度上,一个类不应该知道另一个类的内部细节才能使用它,只知道接口就足够了。
继承表示两个对象之间的“is-a”和/或“has-a”关系。使用继承,在派生类中我们可以重用现有超类的代码。在 Java 中,“is-a”的概念基于类继承(使用extends)或接口实现(使用implements)。
例如,从文件中读取的FileInputStream“is-a” InputStream。
它的意思是一个名字多种形式。它还有两种类型——静态和动态。静态多态通过方法重载实现,动态多态通过方法覆盖实现。它与继承密切相关。我们可以编写一个适用于超类的代码,它也适用于任何子类类型。
Java 集合框架有一个名为 的接口java.util.Collection,ArrayList并且TreeSet是该接口的两种不同实现。ArrayList 维护元素的插入顺序,同时TreeSet通过它们的natural order或comparator(如果提供)对其元素进行排序。现在,如果我们编写一个接受集合并打印其元素的方法,则运行时的实际对象(ArrayList 或 TreeSet)将决定此方法的行为。
多晶印刷法
public void print( Collection < String > collection) {
for ( String s : collection) {
System .out.println("s = " + s);
}
}
传递一个 ArrayList
Collection < String > collection1 = new ArrayList <>();
collection1.add("A");
collection1.add("D");
collection1.add("B");
collection1.add("C");
打印(集合1);(1)
元素将按照元素插入 arraylist 的顺序打印
程序输出
s = A
s = D
s = B
s = C
传递树集
Collection < String > collection2 = new TreeSet <>();
collection2.add("A");
collection2.add("D");
collection2.add("B");
collection2.add("C");
打印(集合2); (1)
元素将按照自然顺序打印
程序输出
s = A
s = B
s = C
s = D
我们刚刚看到该print()方法的行为由运行时传递给它的实际对象类型决定。这就是多态!
重要事实
除了类型的对象java.lang.Object,所有的 java 对象都是多态的,即它们通过 IS-A 测试对它们自己的类型以及类Object。
引用变量的类型决定了可以在该变量引用的对象上调用的方法。在上面的例子中,print()method 只能调用Collection接口上列出的方法,而不管传递给这个方法的实际对象的类型。
多态方法调用仅适用于实例方法(不适用于静态方法,不适用于变量)。只有重写的实例方法在运行时根据真实对象的类型动态调用。
以上就是极悦小编介绍的"四大面向对象的原则",希望对大家有帮助,想了解更多可查看Java教程。极悦在线学习教程,针对没有任何Java基础的读者学习,让你从入门到精通,主要介绍了一些Java基础的核心知识,让同学们更好更方便的学习和了解Java编程,感兴趣的同学可以关注一下。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习