Java — 面向对象

简介:类是对事物的一种描述,对象则为具体存在的事物。

类的定义:

public class 类名 {
    // 成员变量
    访问修饰符 数据类型 变量名;
    ...

    // 成员方法
    访问修饰符 返回类型 方法名(参数列表) {
        若干语句;
        return 方法返回值;
    }
    ...

}

创建对象: 类名 对象名 = new 类名();

成员调用: 对象名.成员变量;对象名.成员方法(参数列表);

定义: 访问修饰符 返回值类型 方法名(参数列表) { 方法逻辑; return 方法返回值 }

调用: 方法名(参数列表);

分类:无参数无返回值、无参数有返回值、有参数无返回值、有参数有返回值。

传值:

进阶:

简介:封装是面向对象编程语言对客观世界的模拟,客观世界里成员变量都隐藏在对象内部,外界无法直接操作。

原则:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

实现:

private 关键字:

this 关键字:

构造方法:

由来:多个类中存在相同属性和行为时,将这些相同内容抽取到一个公共类中,则其它类中无需再定义这些属性和行为,只需继承公共类即可。

定义:就是子类继承父类的属性和行为,使得子类对象具有与父类对象相同的属性和行为,且子类可直接访问父类的非私有属性和行为。

格式: public class 子类名 extends 父类名 {...}

好处:提高代码的复用性,类与类之间产生了关系,是多态的前提。

特点:只支持单继承,不支持多继承,但支持多层继承。

方法重写:

访问修饰符:

super 关键字:

super 和 this 的区别:

成员访问特点:

简介:同一对象在不同时刻表现出不同的形态。

特点:相同的消息给予不同的对象会引发不同的动态,也就是允许不同类的对象对同一消息做出不同的响应。

实现:满足继承(实现)关系、要有方法重写、父类引用指向子类对象。

访问:成员变量(编译看左边,执行看左边),成员方法(编译看左边,执行看右边)。

好处:定义方法时,使用父类型作为参数,将来调用时使用具体的子类型参与操作。

弊端:不能使用子类的特有方法。

转型:

简介:final 关键字是最终的意思,可以修饰类、成员方法、成员变量。

修饰类:

修饰方法:

修饰变量:

简介:static 关键字是静态的意思,访问修饰成员方法、成员变量。

修饰方法:

修饰变量:

简介:在做子类共同功能抽取时,有些方法在父类中并没有具体的体现,此时就需要抽象类。

格式: public abstract class 类名 {...}

特点:

内部:

注意:

简介:接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用。Java 中的接口更多的体现在对行为的抽象。

格式: public interface 接口名 {...}

特点:

内部:

抽象类与接口的区别:

新特性:JDK8 之前,接口只有常量以及抽象方法。JDK8 时,接口增加了默认方法和静态方法。JDK9 时,接口增加了私有方法。

默认方法:

静态方法:

私有方法:

简介:就是在一个类中定义一个类,例:在类 A 的内部定义类 B,类 B 就是内部类。

格式: public class 类名 { 访问修饰符 class 类名 }

特点:内部类可以直接访问外部类的成员(包括私有),外部类要访问内部类的成员必须创建对象。

分类:

Original: https://www.cnblogs.com/bybeiya/p/16241642.html
Author: 北涯
Title: Java — 面向对象

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/585901/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 华为云服务器数据库配置远程连接

    华为云服务器数据库配置远程连接 起因 暑期购买了华为云的一台服务器进行开发 在上面部署了MySQL数据库,由于app中修改用户信息存在未修复的bug,经常会出现登录密码为空,导致账…

    Linux 2023年6月13日
    0138
  • MySQL提示sql_mode=only_full_group_by解决办法

    MySQL异常sql_mode=only_full_group_by 原因:在MySQL 5.7后MySQL默认开启了SQL_MODE严格模式,对数据进行严格校验。会报sql_mo…

    Linux 2023年6月13日
    0129
  • Centos7 安装部署Kubernetes(k8s)集群

    一.系统环境 二.前言 三.Kubernetes 3.1 概述 3.2 Kubernetes 组件 3.2.1 控制平面组件 3.2.2 Node组件 四.安装部署Kubernet…

    Linux 2023年6月7日
    0104
  • RISC-V靠谱吗?

    向各位行业大佬求教个问题:RISC-V靠谱吗? 事情是这样,昨天公司来了几个人,自称是国内唯几的做RISC-V芯片的公司。我上网查了,确实有这么一家公司,是初创公司。他们拿出PPT…

    Linux 2023年6月6日
    0115
  • 领导:谁再用redis过期监听实现关闭订单,立马滚蛋!

    在电商、支付等领域,往往会有这样的场景,用户下单后放弃支付了,那这笔订单会在指定的时间段后进行关闭操作,细心的你一定发现了像某宝、某东都有这样的逻辑,而且时间很准确,误差在1s内;…

    Linux 2023年5月28日
    094
  • Laxcus集群操作系统的分布计算模型

    分布计算模型,你把可以把它理解为分布式编程规范和计算机程序的组合。按照分布式编程规范和系统提供的分布式编程API接口,用户能够快速开发符合Laxcus集群操作系统要求的分布式应用软…

    Linux 2023年6月6日
    079
  • redis的GEO实战 (RedisTemplate)

    geoadd 时间复杂度为O(log(N)) geoadd cityGeo 116.405285 39.904989 “北京”geoadd cityGeo …

    Linux 2023年5月28日
    099
  • Linux文件属性详述

    一、文件属性信息概述 文件属性信息组成如下: 文件索引属性信息——inode编号; 文件类型权限信息; 文件链接属性信息——硬链接数; 文件属主信息——文件所有者; 文件属组属性信…

    Linux 2023年5月27日
    0103
  • 二进制安装docker

    下载二进制包 压到 /usr/local/bin ,我用的版本比较新 https://download.docker.com/linux/static/stable/x86_64/…

    Linux 2023年6月6日
    0103
  • Java50个关键字之static

    关键字static主要有两种作用:第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。第二,希望某个方法或属性与类而不是对象关联在一起,也就是说,在不创建对象的…

    Linux 2023年6月7日
    0103
  • Centos 6 DNS 配置 解决 Unknown host

    测试服务器Maven 打包时遇到了如下的错误 看上去应该是对 maven.aliyun.com的DNS 域名解析出问题了。 登录到服务器上 ping maven.aliyun.co…

    Linux 2023年5月27日
    0107
  • Shell脚本监控线上端口服务是否正常开启

    前言: 线上服务正常可用是至关重要的,当正在运行的某个端口服务异常停止,我们期望定时脚本可以自动启动,而无需遇到问题再人为的启动。 例如:监听Mysql服务是否正常,我们通常的思路…

    Linux 2023年5月28日
    0107
  • 【原创】Linux PCI驱动框架分析(一)

    背景 Read the fucking source code! –By 鲁迅 A picture is worth a thousand words. –…

    Linux 2023年6月8日
    0125
  • 一、Linux系统的简介与历史发展

    1.操作系统的介绍内核负责控制硬件资源分配,而如果只有内核,则只能让计算机硬件运行,而不能有任何功能,因此需要系统调用提供给开发者使用,从而开发应用程序;内核能够控制硬件,比如:让…

    Linux 2023年6月7日
    0156
  • 时钟周期,机器周期和指令周期

    有些概念没有搞清楚,基础不牢呀。 保持更新;https://github.com/yaowenxu posted @2022-02-16 16:18 xuyaowen 阅读(42 …

    Linux 2023年6月14日
    0106
  • Postman环境变量的使用

    前言 请注意,Postman新版有ui上的改动,本文使用的Postman 版本8.4.0 for Mac, ui有调整,但是功能无改变。 Postman是一款接口调测的软件,服务端…

    Linux 2023年6月14日
    0104
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球