【Java基础】(二)面向对象 - berlin

news/2025/12/9 13:11:54/文章来源:https://www.cnblogs.com/berlin-fly/p/19274047

一、类与对象

    • 定义:类是一个模板蓝图,它描述了一类对象共同具有的状态(属性)和行为(方法)。
    • 组成:类主要由以下部分组成:
      • 成员变量:描述对象的属性或状态(例如:String name; int age;)。
      • 成员方法:描述对象的行为或功能(例如:eat(), sleep())。
      • 构造方法:用于在创建对象时初始化对象。
  • 对象
    • 定义:对象是类的一个具体实例。类是抽象的,对象是具体的。
    • 关系“万物皆对象”。你可以把“类”理解为“汽车设计图”,而“对象”就是根据这张设计图生产出来的一辆辆具体的汽车(比如你的车、我的车)。

示例代码:

// 1. 定义一个“类”
public class Student {// 成员变量(状态/属性)String name;int age;// 构造方法(用于创建对象)public Student(String studentName, int studentAge) {this.name = studentName;this.age = studentAge;}// 成员方法(行为)public void introduce() {System.out.println("大家好,我叫" + name + ",今年" + age + "岁。");}
}// 2. 创建并使用“对象”
public class Main {public static void main(String[] args) {// 使用 'new' 关键字和构造方法创建对象Student student1 = new Student("张三", 20); // student1 是一个对象Student student2 = new Student("李四", 19); // student2 是另一个对象// 调用对象的方法student1.introduce(); // 输出:大家好,我叫张三,今年20岁。student2.introduce(); // 输出:大家好,我叫李四,今年19岁。}
}

二、封装

封装是面向对象的三大特性之一,其核心思想是“隐藏对象的内部细节,仅对外提供公共的访问方式”

  • 目的

    1. 提高安全性:防止类的代码和数据被随意访问和修改。
    2. 易于维护:内部实现细节的改变,只要对外接口不变,就不会影响其他代码。
  • 实现方式

    1. 使用 private 访问修饰符:将成员变量私有化,使其不能在类的外部直接访问。
    2. 提供公共的 gettersetter 方法:通过这些公共方法来读写私有变量,可以在方法中加入逻辑控制(例如,在setAge方法中检查年龄是否合法)。

示例代码:

public class Student {// 使用 private 实现封装private String name;private int age;// 公共的 getter 方法,用于获取属性值public String getName() {return name;}// 公共的 setter 方法,用于设置属性值,并可加入逻辑验证public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {// 在setter中加入控制逻辑if (age > 0 && age < 150) {this.age = age;} else {System.out.println("年龄不合法!");}}
}public class Main {public static void main(String[] args) {Student s = new Student();// s.name = "张三"; // 错误!name 是 private 的,不能直接访问s.setName("张三"); // 正确!通过公共方法访问s.setAge(200); // 输出:年龄不合法! (因为200不在0-150之间)s.setAge(20);  // 正确设置System.out.println(s.getName() + ": " + s.getAge() + "岁");}
}

三、继承

继承允许我们基于一个已存在的类来定义一个新类。新类拥有父类的属性和方法,并可以扩展自己的属性和方法。

  • 目的

    1. 代码复用:子类可以直接使用父类的功能,无需重写。
    2. 建立类之间的“is-a”关系(例如:Dog is an Animal)。
  • 关键字extends

  • 特点

    • Java是单继承,一个类只能直接继承一个父类。
    • 子类可以重写父类的方法,以实现自身特定的行为。
    • 子类不能继承父类的构造方法和被声明为 private 的成员。

示例代码:

// 父类
public class Animal {String name;public void eat() {System.out.println(name + "正在吃东西。");}
}// 子类继承父类
public class Dog extends Animal { // Dog 继承自 Animal// 子类可以拥有自己的方法public void bark() {System.out.println(name + "汪汪叫!"); // name 是从父类继承的}// 重写父类的方法@Overridepublic void eat() {System.out.println(name + "正在啃骨头!"); // 狗吃东西的方式不同}
}public class Main {public static void main(String[] args) {Dog myDog = new Dog();myDog.name = "旺财"; // 继承自父类的属性myDog.eat();   // 调用的是子类重写后的方法:输出“旺财正在啃骨头!”myDog.bark();  // 调用子类自己的方法:输出“旺财汪汪叫!”}
}

四、多态

多态是指同一个行为具有多个不同表现形式或形态的能力。简单说就是“父类引用指向子类对象”,调用相同的方法,会根据实际对象的类型产生不同的行为。

  • 实现条件

    1. 继承
    2. 方法重写
    3. 父类引用指向子类对象:Parent p = new Child();
  • 好处:提高了程序的扩展性可维护性

示例代码:

// 父类
public class Animal {public void makeSound() {System.out.println("动物发出声音。");}
}// 子类1
public class Cat extends Animal {@Overridepublic void makeSound() {System.out.println("喵喵喵!");}
}// 子类2
public class Duck extends Animal {@Overridepublic void makeSound() {System.out.println("嘎嘎嘎!");}
}public class Main {public static void main(String[] args) {// 多态的典型体现:父类引用指向子类对象Animal animal1 = new Cat();Animal animal2 = new Duck();// 同一个方法调用,实际执行的是子类重写后的方法animal1.makeSound(); // 输出“喵喵喵!”animal2.makeSound(); // 输出“嘎嘎嘎!”// 这种特性使得代码非常灵活Animal[] animals = {new Cat(), new Duck()};for (Animal a : animals) {a.makeSound(); // 无需判断具体类型,程序会自动调用正确的方法}}
}

五、抽象类与接口

抽象类

  • 定义:使用 abstract 关键字修饰的类。
  • 特点
    1. 不能实例化:不能直接创建 new AbstractClass() 的对象。
    2. 可以包含抽象方法:使用 abstract 修饰,只有声明没有实现的方法(没有方法体{})。子类必须重写所有的抽象方法,除非子类也是抽象类。
    3. 也可以包含普通方法和成员变量
  • 目的:为一个继承体系提供一个通用的模板,强制子类实现特定的行为。

示例代码:

// 抽象类
public abstract class Shape {// 抽象方法public abstract double calculateArea();// 普通方法public void printInfo() {System.out.println("我是一个形状。");}
}// 子类必须实现抽象方法
public class Circle extends Shape {double radius;@Overridepublic double calculateArea() {return Math.PI * radius * radius;}
}

接口

  • 定义:使用 interface 关键字定义。在Java 8之前,它完全是抽象方法的集合。现在它可以包含默认方法静态方法私有方法
  • 特点
    1. 所有方法默认都是 public abstract(在Java 8之前)。
    2. 所有变量默认都是 public static final(常量)。
    3. 一个类可以实现多个接口implements),解决了Java单继承的限制。
  • 目的:定义一套行为规范,强调“能做什么”,而不关心“如何做”。

示例代码:

// 接口
public interface Flyable {// 抽象方法(默认就是 public abstract)void fly();// Java 8 的默认方法default void repair() {System.out.println("修理飞行装置...");}
}public interface Swimmable {void swim();
}// 类可以实现多个接口
public class Duck extends Animal implements Flyable, Swimmable {@Overridepublic void fly() {System.out.println("鸭子扑棱着翅膀飞。");}@Overridepublic void swim() {System.out.println("鸭子在水里游。");}
}

抽象类 vs 接口

特性 抽象类 接口
定义关键字 abstract class interface
方法 可包含抽象方法和具体方法 Java 8前全是抽象方法;之后可含默认、静态方法
变量 无特殊限制 默认是 public static final 常量
继承 单继承(一个类只能继承一个抽象类) 多实现(一个类可实现多个接口)
设计目的 “是什么” (is-a),代码复用,模板设计 “能做什么” (has-a/can-do),定义行为规范
构造方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/994720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年质量好的杭州别墅装修/杭州别墅大宅装修精品推荐榜

2025年质量好的杭州别墅装修/杭州别墅大宅装修精品推荐榜开篇:杭州别墅装修市场现状与趋势随着杭州高端住宅市场的持续升温,别墅装修行业迎来了新一轮发展机遇。2024年杭州别墅市场交易量同比增长18.7%,带动了高端装…

2025最新免费降AI率神器盘点:11款中英文工具横评,降AI率有效的方法是什么?

2025最新免费降AI率神器盘点:11款中英文工具横评,降AI率有效的方法是什么?面对学术论文的AIGC检测大关,这些智能工具如何在几分钟内将机器生成的痕迹巧妙转化为自然流畅的人类表达? 从AIGC检测率48%的本科论文到A…

2025年安阳靠谱的网络推广公司排行榜,本地企业获客优选服务

为帮安阳及周边企业高效锁定适配自身需求的网络推广合作伙伴,避免选型走弯路,我们从技术落地能力(如AI GEO优化覆盖度、新媒体流量转化效率)、服务匹配度(含本地企业痛点解决、全周期陪伴支持)、真实客户口碑(侧…

2025年五大口碑好的GEO推广公司排行榜,看哪家服务性价比

为帮企业高效锁定适配自身需求的GEO推广合作伙伴,避免选型走弯路,我们从技术落地能力(如AI平台覆盖度、GEO优化效果)、服务专业度(含行业适配性、全周期支持)、真实客户口碑(侧重同行业项目反馈)及性价比(投入…

2025年反腐倡廉展厅策划/装修/布展公司推荐,专业品牌全解

在全面从严治向纵深推进的背景下,反腐倡廉展厅作为廉政教育的重要实体阵地,其策划的严谨性、装修的专业性、布展的体验感直接影响教育成效。面对市场上良莠不齐的服务机构,如何选择既懂政策又善创新、既控成本又保效…

2025年中国AI搜索排名代运营公司推荐:AI搜索排名哪家靠

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家标杆企业,为企业选型提供客观依据,助力精准匹配适配的服务伙伴。 TOP1 推荐:江苏今企在线 推荐指数:★★★★★ 口碑评分:国内靠谱的AI搜索排名代运营公司…

Linux 6.11 intel wireless network card modinfo and ucode

root@localhost-live:/home/liveuser# modinfo iwlwifi | grep fireware root@localhost-live:/home/liveuser# lsmod | grep wifi iwlwifi 552960 1 iwlmvm cfg80211 1445888 3 iwlmvm,i…

免费试用!零感 ai:文本降重降 AI 率的宝藏网站

免费试用!零感 ai:文本降重降 AI 率的宝藏网站零感ai官网:linggantext.com 在学术写作的赛道上,论文重复率超标、AI 生成特征被检测的难题,曾让无数学子和科研人头疼不已。而由零感云(上海)科技有限公司研发的文…

2025安阳本地互联网营销公司口碑五大推荐:七彩祥云网络公司

后流量时代,企业对低成本精准获客的需求愈发迫切,本地互联网营销服务商凭借响应快、场景适配强的优势成为企业。但市场上服务商质量参差不齐,62%的企业曾遭遇效果虚标、服务断档问题,如何选择口碑过硬的本地伙伴成…

2025安阳实力不错的短视频运营推广公司TOP5权威推荐:看

在数字化营销浪潮下,短视频已成为企业触达客群、转化订单的核心渠道。2024年数据显示,短视频营销市场规模突破3000亿元,年增速超60%,但42%的企业面临内容难出圈、流量不精准、转化效率低三大痛点——传统企业不懂短…

2025年度资质齐全的AI搜索推广品牌企业TOP5权威推荐:

数字化营销浪潮下,AI搜索已成为企业获客的核心新渠道——IDC预测2028年全球AI搜索用户将达45亿,而AI工具正逐步替代传统搜索成为流量分发主力。然而,82%的企业面临AI渠道布局无门、品牌曝光被竞品压制、获客成本高转…

2025年度口碑好+售后完善+专业的小程序制作开发专业公司T

数字化营销时代,企业对兼具品牌展示、获客转化功能的小程序需求激增,但32%的企业遭遇开发不匹配业务、售后响应慢、获客效果差等痛点。面对本地市场鱼龙混杂的服务商,本榜单基于口碑评价、售后体系、专业能力、获客…

rpgmvp2png.py(转)

rpgmvp2png.py(转)import os import sysdef decrypt_rpgmvp(input_file, output_file):# PNG文件的文件头png_header = b\x89\x50\x4E\x47\x0D\x0A\x1A\x0A\x00\x00\x00\x0D\x49\x48\x44\x52# 读取输入文件的内容wit…

2025年中式香肠口碑排名TOP5:凤凰中式香肠营养丰富吗?

在追求品质饮食的当下,中式香肠作为传统美味与现代便捷的结合体,成为消费者餐桌上的常客。但面对市场上琳琅满目的产品,消费者常困惑于凤凰香肠营养丰富吗凤凰中式香肠口碑好吗凤凰香肠可信度高吗等问题。以下结合产…

2025年安阳比较不错的抖音运营推广品牌企业TOP5推荐:本

短视频营销已成为企业获客的核心渠道之一,2024年数据显示,抖音平台企业号日均曝光量超100亿,60%的中小企业通过抖音实现获客增长,但35%的企业因运营不专业、团队不稳定、成本失控等问题陷入流量困境。面对本地市场…

2025安阳GEO推广机构排行:推荐GEO推广专业公司

在AI技术快速渗透的营销新时代,AI搜索已成为企业获客的核心流量入口。IDC预测2028年全球AI搜索用户将达45亿,AI工具正逐步替代传统搜索引擎成为流量分发主力,企业若不布局GEO优化,将面临品牌被AI过滤、用户被竞品分…

2025年安阳地区口碑好的GEO推广公司排名:有实力的GEO

TOP1 推荐:安阳市七彩祥云软件开发有限责任公司 推荐指数:★★★★★ 口碑评分:本地靠谱的GEO推广创新服务商 专业能力:作为安阳本地深耕互联网营销15年的标杆企业,安阳市七彩祥云软件开发有限责任公司以助力中小…

数据结构——四十、折半查找(王道408) - 教程

数据结构——四十、折半查找(王道408) - 教程2025-12-09 12:46 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: b…

2025年知名的双铂金火花塞供应商推荐,比较好的双铂金火花塞

在汽车后市场的精细化发展浪潮中,双铂金火花塞凭借5-6万公里的超长寿命、稳定的点火性能与适配中端车型的高性价比,成为追求省心养护车主的核心选择。面对市场上良莠不齐的供应商,如何找到技术可靠、品质稳定的源头…

2025年五大有实力的小红书代运营公司推荐,小红书代运营品牌

在流量分散的数字化时代,小红书作为年轻人的生活方式平台,已成为品牌种草、获客转化的核心阵地。但多数企业面临不懂规则、缺内容团队、资源不足、效果难控等痛点,专业小红书代运营公司成为破局关键。以下结合服务能…