day04

Java是一种广泛使用的面向对象编程语言,其设计初衷就是为了实现面向对象的编程范式。面向对象编程(Object-Oriented Programming, OOP)的核心概念包括封装、继承和多态,这些概念是构建任何OOP语言应用程序的基石。

封装(Encapsulation)

封装是指将数据(属性)和操作数据的代码(方法)绑定在一起形成一个整体即类(Class)。封装隐藏了类的实现细节,只暴露出有限的接口供外部访问。在Java中,封装可以通过访问修饰符来实现,如privateprotectedpublic。通常,一个类的属性会被设置为private,以防止直接被外部访问或修改,而通过公共的方法(getters和setters)来提供对这些属性的安全访问。

 

java复制代码

public class Person { // 私有属性 private String name; private int age; // 公共方法(getter和setter) public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { if (age >= 0 && age <= 150) { this.age = age; } else { throw new IllegalArgumentException("Invalid age"); } } }

在上面的例子中,Person类的nameage属性被封装起来,只能通过类提供的公共方法进行访问和修改。这样做的好处是可以在setter方法中添加逻辑以验证输入值的合法性,从而保护对象的状态不被非法修改。

继承(Inheritance)

继承允许新创建的类(子类)继承已有类(父类)的属性和方法。子类不仅可以重用父类的代码,还可以添加新的功能或者覆盖父类的方法以实现新的功能。这有助于减少重复代码,提高代码复用性。在Java中,继承使用关键字extends

 

java

public class Student extends Person { // Student特有的属性 private String studentId; // Student特有的方法 public String getStudentId() { return studentId; } public void setStudentId(String studentId) { this.studentId = studentId; } }

在这个例子中,Student类继承了Person类,因此它自动拥有了Person类的所有属性和方法。此外,它还定义了自己的属性studentId和对应的方法。这意味着Student对象既是Person也是Student,这是继承的一个重要特征。

多态(Polymorphism)

多态是指同一个接口或父类的不同实现方式。在Java中,多态性主要通过继承和方法的重载(Overloading)与重写(Overriding)来实现。多态允许程序在运行时根据对象的实际类型来调用相应的方法,而不是在编译时就确定下来。这种机制使得我们可以编写更加通用和灵活的代码。

方法重载(Method Overloading)

方法重载是指在同一个类中定义多个同名但参数列表不同的方法。编译器会根据传递的参数数量和类型来决定调用哪个方法。

 

java

public class Calculator { public int sum(int a, int b) { return a + b; } public double sum(double a, double b) { return a + b; } }

在上面的Calculator类中,sum方法被重载了,可以接受两个整数或两个双精度浮点数作为参数。

方法重写(Method Overriding)

方法重写是指在子类中重新定义父类中已有的方法,以便在子类中提供不同的实现。当子类对象调用这个方法时,将会执行子类中的版本。

 

java

public class Animal { public void makeSound() { System.out.println("The animal makes a sound"); } } public class Dog extends Animal { @Override public void makeSound() { System.out.println("The dog barks"); } }

在这个例子中,Dog类重写了Animal类的makeSound方法。当我们有一个Animal类型的引用指向Dog对象并调用makeSound方法时,将会输出"The dog barks",这就是多态性的体现。

Java的三大面向对象特性——封装、继承和多态——共同构成了Java编程的基础框架。封装提供了数据隐藏和安全性;继承提供了代码复用和扩展性;多态提供了灵活性和动态绑定。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值