java面向对象是啥,java是面向对象的语言
java面向对象是什么?
Java面向对象详解
我接触项目开发已经很久了。最近开始萌发回去把之前学过的基础知识写下来的想法。一、初学接触编程,一个人跌跌撞撞摸索前进。当他是一个初学者时,他明白了许多事情。后来他练多了,有些事情就清楚了。第二,经过一定的练习后,再回去学习一些基础的东西,可以理解的更透彻;第三,是一些事情的基础,但是真的很重要,值得做好。
1、面向对象
面向对象是一种新的编程方法或新的范例。其基本思想是利用对象、类、继承、封装、多态等基本概念来设计程序。软件系统是从现实世界中的客观事物(即物体)出发构建的,在系统构建中尽可能使用人类的自然思维方式。
2、对象
对象是系统中用来描述客观事物的实体,是系统的基本单位。一个对象由一组属性和一组操作这组属性的服务组成。
类的实例化可以生成对象,对象的生命周期包括生成、使用、淘汰三个阶段。
当没有对对象的引用时,对象就变成了无用的对象。Java垃圾收集器自动扫描对象的动态内存区域,将未被引用的对象作为垃圾收集并释放它们。当系统内存耗尽或调用System.gc()进行垃圾回收时,垃圾回收线程与系统同步运行。
3、类
类是一组具有相同属性和方法的对象。它为所有属于该类的对象提供了统一的抽象描述,其内部包括两个主要部分:属性和方法。在面向对象编程语言中,类是一个独立的程序单元,它应该有一个类名,包括两个主要部分:属性和方法。
Java中的类实现包括两部分:类声明和类体。
类声明
[public][abstract final]className[extends superclassName][implements interfaceNameList]{…}其中修饰符public、abstract、final final描述类的属性,class name是类名,super class name是该类的父类的名称,interfaceNameList是该类实现的接口的列表。
类体
类别className{
[public protected private][static][final][transient][volatile]类型variableName//成员变量
[public protected private][static][final abstract][native][synchronized]returnType method name([param list])[throws exception list]{
声明
}//成员方法
}成员变量限定符的含义:
静态:静态变量(类变量)
最终:常数;Transient:一个临时变量,用于对象存档和对象序列化。
Volatile:贡献变量,用于共享并发线程。
方法的实现也包括两部分:方法声明和方法体。
方法声明
声明中限定符的含义:
Static:类方法,可以通过类名直接调用。
抽象:抽象方法,没有方法体。
Final:不能重写方法。
本机:集成其他语言的代码
Synchronized:控制多个并发线程的访问。
方法声明包括方法名、返回类型和外部参数。参数的类型可以是简单数据类型或复合数据类型(也称为引用数据类型)。对于简单的数据类型,java实现了值传递。该方法接收参数值,但不能更改它们。如果要更改参数的值,请使用引用数据类型,因为引用数据类型被传递到方法在内存中的地址,而方法中对数据的操作可以更改数据的值。
方法体
方法是方法的实现,包括局部变量的声明和所有合法的Java指令。方法中声明的局部变量的范围在方法内部。如果局部变量与某个类的成员变量同名,则该类的成员变量将被隐藏。
为了区分参数和类的成员变量,我们必须使用this。这用于引用方法中的当前对象,其值是调用该方法的对象。返回值必须与返回类型相同,或者完全相同,或者与其子类相同。当返回类型是接口时,返回值必须实现接口。
构造方法
施工方法是一种特殊的方法。Java中的每个类都有一个构造函数来初始化该类的对象。
该方法与类名同名,并且不返回任何数据类型。
重载常用于构造方法。
方法只能由new运算符调用。
4、面向对象的基本特性
封装
封装就是尽可能隐藏一个对象的内部细节,与外界形成边界,只保留有限的接口和方法与外界交互。封装的原理是对象外部的部分不能随意访问和操纵对象的内部属性,从而避免外界对对象内部属性的破坏。
通过为类成员设置特定的访问权限,可以隐藏类中成员的信息。
Private:仅限于private的类成员只能由该类本身访问。如果一个类的构造函数被声明为私有,则其他类不能生成该类的实例。
Default:对访问权限没有任何限制的类的成员处于默认访问状态,并且可以被类本身和同一包中的类访问。
Protected:定义为protected的类的成员,可由该类本身、其子类(包括同一包和不同包中的子类)以及同一包中的所有其他类访问。
Public:仅限于public的类成员,所有类都可以访问它。
如何解决写爬虫IP受阻的问题?立即使用。
继承
子类的对象拥有父类的所有属性和方法,称为子类对父类的继承。
Java中的一个父类可以有多个子类,但是子类只能继承一个父类,这叫做单继承。
实现了代码的重用。
Java中的所有类都是通过直接或间接继承java.lang.Object类获得的。
子类不能从父类继承具有私有访问权限的成员变量和方法。
子类可以覆盖父类的方法,也就是说,用与父类相同的名称命名一个成员变量。
Java用super来访问父类的成员,super用来引用当前对象的父类。使用super有三种情况:
访问父类隐藏的成员变量,如super.variable
调用父类中被覆盖的方法,比如:super.method ([paramlist]),super()调用父类构造方法;
调用父类的构造函数,比如:super([param list]);
多态
对象的多态性意味着父类中定义的属性或方法在被子类继承后可以有不同的数据类型或表现出不同的行为。这使得相同的属性或方法在父类及其子类中具有不同的语义。比如几何图形、椭圆、多边形的画图方法,都是几何图形的子类,它们的画图方法有不同的作用。
Java的多态性体现在两个方面:通过方法重载实现的静态多态性(编译时多态性)和通过方法重写实现的动态多态性(运行时多态性)。
编译多态性:在编译阶段,调用哪个重载的方法,编译器会根据参数的不同,静态确定要调用的对应方法。
运行时多态性:因为子类继承了父类的所有属性(私有的除外),所以子类可以作为父类对象。当程序中使用父类对象时,它可以被子类对象替换。对象可以通过引用子类的实例来调用子类的方法。
重载(Overloading)
方法重载是类以统一的方式处理不同数据类型的一种方式。
一个类中可以创建多个方法。它们名称相同,但参数不同,定义不同。当调用方法时,通过传递给它们的不同参数的数量和类型来决定使用哪个方法。
返回值的类型可以相同,也可以不同,返回类型不能作为区分重载函数的标准。
重写(Overriding)
子类重写了父类的方法。如果子类中的一个方法和它的父类有相同的方法名、返回类型和参数表,我们说这个方法被覆盖了。
如果想要父类中的原始方法,可以使用super关键字,它指的是当前类的父类。
子类函数的访问修改权限不能低于父类。这就是java面向对象的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。