博客
关于我
【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/

你可能感兴趣的文章
MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
查看>>
Mysql_Postgresql中_geometry数据操作_st_astext_GeomFromEWKT函数_在java中转换geometry的16进制数据---PostgreSQL工作笔记007
查看>>
mysql_real_connect 参数注意
查看>>
mysql_secure_installation初始化数据库报Access denied
查看>>
MySQL_西安11月销售昨日未上架的产品_20161212
查看>>
Mysql——深入浅出InnoDB底层原理
查看>>
MySQL“被动”性能优化汇总
查看>>
MySQL、HBase 和 Elasticsearch:特点与区别详解
查看>>
MySQL、Redis高频面试题汇总
查看>>
MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
查看>>
mysql一个字段为空时使用另一个字段排序
查看>>
MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
查看>>
MYSQL一直显示正在启动
查看>>
MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
查看>>
MySQL万字总结!超详细!
查看>>
Mysql下载以及安装(新手入门,超详细)
查看>>
MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
查看>>
MySQL不同字符集及排序规则详解:业务场景下的最佳选
查看>>
Mysql不同官方版本对比
查看>>
MySQL与Informix数据库中的同义表创建:深入解析与比较
查看>>