oop的特征

面向对象三大特性详解

1:面向对象的特征:
(1)封装:(私有的属性,公共的方法)
   封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口
public class Man

{

//对属性的封装,一个人的姓名,年龄,妻子都是这个对象(人)的私有属性

private String name;

private int age;

private Woman wife;

//对该人对外界提供方法的封装,可以设定妻子,姓名,年龄也可以获得男人的姓名和年龄
  // 方法封装
  public void setWife(Woman wife) {
  this.wife = wife;
  }
  public String getName() {
  return name;
  }
  public void setName(String name) {
  this.name = name;
  }
  public int getAge() {
  return age;
  }
  public void setAge(int age) {
  this.age = age;
  }
  }
  public class Woman {
  // 属性封装
  private String name;
  private int age;
  private Man husband;
  // 方法封装
  public String getName() {
  return name;
  }
  public void setName(String name) {
  this.name = name;
  }
  public int getAge() {
  return age;
  }
  public void setAge(int age) {
  this.age = age;
  }
  public Man getHusband() {
  return husband;
  }
  public void setHusband(Man husband) {
  this.husband = husband;
  }
  }
(2)继承:(子类自动拥有父类的属性和方法,但是私有的除外)
public class code {
  public static void main(String[]args){
   child grandson=new grandson();
   grandson.play2();
  
  }
}
public class father {
  private  void play(){
   System.out.println("father-play");
   }
  public void exit(){
   System.out.println("father-exit");
   }
   
  public void play2(){
   play();
   exit();
  }   
  
}
public class child extends father {
 public  void play(){
  
  System.out.println("child-play");
 }
 public  void exit(){
  
  System.out.println("child-exit");
 
 }
}
(3)多态:(同一种方法,有不同的实现)
public interface Parent//父类接口
{
    public void simpleCall();
}
public class Child_A implements Parent
{
    public void simpleCall();
    {
    //具体的实现细节;
    }
}

public class Child_B implements Parent
{
    public void simpleCall();
    {
    //具体的实现细节;
    }
}

### 面向对象编程 (OOP) 的概念与原理 #### 定义 面向对象编程(Object-Oriented Programming, OOP)是一种基于对象概念的编程范式,能够将数据和操作这些数据的方法组合在一起形成对象。这种编程方式允许程序员按照现实世界的实体来构建程序模型[^1]。 #### 核心要素 在 Java 中,OOP 主要围绕四个核心原则展开: - **封装**:隐藏对象内部状态并仅暴露有限接口给外部访问;这有助于保护数据不被随意修改以及简化复杂系统的管理。 - **继承**:子类可以继承父类的功能,并在此基础上扩展新的功能或者重写已有功能;这样做的好处是可以提高代码复用性和可维护性。 - **多态**:同一消息可以根据接收者不同表现出多种形态;即同一个方法调用可以在不同的上下文中执行不同的动作,增强了灵活性。 - **抽象**:通过定义抽象类或接口来描述通用特征而不涉及具体实现细节;从而使得设计更加灵活且易于理解[^2]. #### 类与对象的关系 类是创建对象的蓝图或模板,规定了该类型的对象应该具有哪些属性和行为。而对象则是根据这个模板实际创建出来的个体实例,拥有具体的数值表示其当前的状态。例如,在 `Person` 这个例子中,我们可以通过定义一个名为 `Person` 的类来设定人的姓名 (`name`) 和年龄 (`age`) 属性,以及自我介绍的行为(`introduce()`)[^4]: ```java public class Person { // 属性(成员变量) String name; int age; // 构造方法 public Person(String name, int age) { this.name = name; this.age = age; } // 方法(成员方法) public void introduce() { System.out.println("Hello, my name is " + name + " and I am " + age + " years old."); } } ``` 上述代码展示了如何利用类来组织相关联的数据结构及其对应的操作逻辑,进而实现了对特定领域问题的有效建模。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值