转自:
Java面向对象(OOP)的相关说明
下文将讲述面向对象(OOP)的基础知识及面向对象编程的很多概念说明,如:继承,多态等。
1. 面向对象编程
对象是使用计算机语言表示现实中真实的物体,如:汽车,飞机,人员,等等。
1.1. 对象
我们将任何拥有行为,状态的信息称之为对象。
1.2. 类
类是一个逻辑实体,我们将一个对象集合称之为类
1.3. 继承
一个对象获取父对象的所有属性和行为时,我们称之为继承。
继承的目的:使代码可重用性
继承是面向对象的编程的内容
当一个对象基于另一个对象构建。
我们将这种操作模式称之为”继承“
被继承的类称为超类,继承超类的类称为子类
在java编程开发中,运用extends
关键字来实现继承
例:
class SuperTestClassA {
public void test(){
System.out.println("超类");
}
}
// 继承 SuperTestClassA类
class SubTestClassB extends SuperTestClassA{
public void testInfo(){
System.out.println("子类");
}
}
public class testClass{
public static void main(String args[]){
SubTestClassB a = new SubTestClassB ();
a.testInfo();
a.test();
}
}
1.4. 多态性
多态性:当一个类在不同的子类中相同的方法运行出的结果不同,我们将这种形式称之为”多态“
java代码中,使用方法重载和方法重写来实现多态性
例:
public class testClass{
public void draw(){
System.out.println("draw1");
}
public void draw(int d){
System.out.println("draw2");
}
public void draw(int d, String c){
System.out.println("draw3");
}
}
testClass类中,draw方法通过不同的参数,可实现不同的动作,我们将这种操作模式称之为”编译时多态“
还有一种操作模式,子类重写方法
方法重写示例
类:testClass.java
public interface testClass{
public void draw();
}
Java
类:test1.java
public class test1 implements testClass{
@Override
public void draw(){
System.out.println("draw1");
}
}
Java
*类:test2.java*
public class test2 implements testClass{
@Override
public void draw() {
System.out.println("draw2");
}
}
testClas
是超类,它有两个子类test1
和test2
,下面是运行时多态性的示例。
类:mainTest.java
public class mainTest{
public static void main(String args[]){
testClass t = new test1();
t.draw();
testClass t2= new test2();
t2.draw();
}
}
以上代码,实现运行时的动态效果
1.5. 抽象
我们将Java代码中隐藏内部细节和显示功能称之为抽象。
如: 网络如何到达网站,这种模式我门不知道,但是我们知道输入网址就可以访问网站,这种操作模式就是一种抽象
抽象是隐藏内部细节和用简单的术语描述事物的概念。
如:对外提供方法,只需调用就可以完成对象的相关动作
1.6. 封装
将一些同一动作,放入包中,我们称之为封装
如:数据库访问,文件读写,网络访问等等。
封装类的信息,我们常使用以下修饰符private
,protected
和public
关键字
2. 面向对象编程的优点
-
OOP使开发和维护变得更容易,在面向过程的编程语言中,当代码随着项目规模的增长而增长,则不容易管理。
-
OOP提供数据隐藏,而在面向过程的编程语言中,可以从任何地方访问全局数据。
-
OOP提供更有效地模拟真实世界事件的能力。使用面向对象的编程语言,我们可以提供真实世界里的问题的解决方案
版权声明