博客
关于我
【Java基础】什么是面向对象?
阅读量:797 次
发布时间:2023-02-10

本文共 1505 字,大约阅读时间需要 5 分钟。

Java面向对象基础入门

面向对象编程是一种基于对象的编程范式,强调将现实世界中的事务抽象为程序设计中的“对象”。它以“一切皆为对象”为核心思想,采用“自下而上”的设计方式,即先设计组件,再进行组件拼装。

类的基础

  • :定义一个对象的基本模板,用于创建对象。类似于蓝图,决定了对象的属性和行为。
  • 引用数据类型:类似于自定义的数据类型,可以看作是对象的引用。每个对象都有独立的引用地址。

对象的成员

  • 成员:属于对象的属性,随对象而消亡。每个对象都可以有不同的成员属性。
  • 局部变量:存在于代码块中,与对象无关。成员变量在对象消亡时也随之消失。

this关键字

  • this:指向当前对象的成员变量,用于区分局部变量和成员变量。在成员方法中,隐含this传参。
  • 注意事项:static方法没有隐含的this传参,若要访问成员变量需通过对象创建。

构造方法

  • 构造方法:方法名必须与类名一致,new操作自动调用。无法用普通方法调用,返回值类型可以是任何类型。
  • 构造方法重载:允许在不同参数类型下定义多个构造方法。
  • 构造方法的赋值:构造器的赋值操作是最可靠的,值会在最后执行。

static修饰符

  • 静态属性:属于类而非对象,所有对象共享。静态成员在类加载时创建,仅有一份。
  • 静态变量:存放在方法区中,属于全体对象。成员变量存放在堆内存中。
  • 访问方式:通过类名.的形式访问,不建议通过对象名。
  • 注意事项:不存在静态的局部变量。

匿名对象

  • 匿名对象:没有引用指向,直接用new创建。常用于方法参数和返回值。
  • 使用场景:一次性使用后会被回收,无法再次访问。

代码块

  • 局部代码块:用于优化内存管理,限制局部变量的生命周期。
  • 构造代码块:定义在类成员位置,随构造器执行。赋值顺序遵循定义顺序。
  • 静态代码块:在类加载时执行,不能调用非静态成员。静态代码块和构造代码块的赋值顺序一致。

导包与访问权限

  • 导包:使用智能导入,方便开发。import包名.*;可选,需确保不导入无用类。
  • 访问权限修饰符:public、protected、default、private。默认权限仅限同包类访问。

多态

  • 多态条件:父类引用指向子类对象,且有方法重写。
  • 成员变量访问:编译时看左边,运行时看左边。
  • 成员方法访问:编译时看左边,运行时看右边。
  • 向上转型:子类引用转父类引用,不出问题。
  • 向下转型:需确认子类类型。使用instanceof判断。

抽象类

  • 抽象类:可以定义抽象方法,必须被子类重写。抽象方法没有方法体。
  • 抽象类特点:不能创建对象,但可以有构造器。子类继承抽象类不需重写所有方法。
  • 成员变量和方法:抽象类可以有普通成员和静态成员。

接口

  • 接口:访问权限只有public和默认。可以多继承,抽象类继承接口可不重写。
  • 接口成员:方法默认public abstract,成员变量默认全局常量,需显式赋值。
  • 静态方法和默认方法:接口中可以有。接口和接口之间可以多继承。

内部类

  • 成员内部类:可以访问外围类成员,直接使用外围类对象和类名。
  • 外围类访问内部类:需创建内部类对象。静态方法需创建外围类对象。
  • 局部内部类:定义在方法或作用域中,无法访问外部类成员。

lambda表达式

  • lambda表达式:特殊的匿名内部类,用于实现接口。语法简洁,灵活性高。
  • 使用场景:方法传递或返回函数。形参列表可简化,方法体可省略。
  • 方法引用:格式为接口名::方法名。适用于函数组合和高阶函数。

通过以上知识,可以更好地理解Java面向对象编程的核心概念。面向对象不仅仅是对象的操作,更是如何通过类和继承实现代码复用和抽象。掌握这些概念,有助于写出更高效、可维护的代码。

转载地址:http://yfbfk.baihongyu.com/

你可能感兴趣的文章
mt_rand
查看>>
mysql -存储过程
查看>>
mysql /*! 50100 ... */ 条件编译
查看>>
mysql 1045解决方法
查看>>
mudbox卸载/完美解决安装失败/如何彻底卸载清除干净mudbox各种残留注册表和文件的方法...
查看>>
mysql 1264_关于mysql 出现 1264 Out of range value for column 错误的解决办法
查看>>
mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
查看>>
mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
查看>>
mui折叠面板点击事件跳转
查看>>
MYSQL 5.7数据库同步结构#1067报错 invalid default value for解决方法
查看>>
mui框架通讯录检索
查看>>
MySQL 8 公用表表达式(CTE)—— WITH关键字深入用法
查看>>
mysql 8 远程方位_mysql 8 远程连接注意事项
查看>>
MUI框架里的ajax的三种方法
查看>>
MySQL 8.0 恢复孤立文件每表ibd文件
查看>>
Mysql 8.0 新特性
查看>>
MultCloud – 支持数据互传的网盘管理
查看>>
MySQL 8.0.23中复制架构从节点自动故障转移
查看>>
MySQL 8.0开始Group by不再排序
查看>>
mysql ansi nulls_SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思
查看>>