龙空技术网

Java类与对象知识点总结

超ai你丫 89

前言:

而今同学们对“java比较两个对象的差异”都比较关心,小伙伴们都需要知道一些“java比较两个对象的差异”的相关知识。那么小编也在网摘上网罗了一些对于“java比较两个对象的差异””的相关资讯,希望姐妹们能喜欢,小伙伴们快快来了解一下吧!

#头号有新人# #java#

1.类与对象

java是一门纯面向对象的语言,在java面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要是要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人们对于事物的认知,对于大型程序的设计,扩展以及维护都非常友好。

三个基本特征:

(1)封装:保护内部的操作不被破坏,隐藏代码的实现细节;

(2)继承:在父类的基础之上继续在子类内部进行扩充;

(3)多态:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。

2.类的声明

[修饰符] class 类名{//类的声明部分

[成员变量]

[成员方法]

}

3.成员变量:在类体的变量部分中定义的变量,也称为属性。

成员变量:定义在类中,方法体之外。变量在创建对象时实例化。成员变量可被类中的方法、构造方法以及特定类的语句块访问。

成员变量的声明:[修饰符] 数据类型 变量名 [ = 初始值 ];

public private protected用于表示成员变量的访问权限。

static表示该成员变量为类变量,也称为静态变量。

final表示将该成员变量声明为常量,其值无法更改。

可以在声明成员变量的同时对其进行初始化,如果声明成员变量时没有对其初始化,则系统会使用默认值初始化成员变量。

4.成员方法的声明:[修饰符] 返回值类型 方法名([数据类型 参数名,……]){

//方法体,该方法完成的功能代码

}

5.构造器

[修饰符] 构造器名([数据类型 参数名,……]){

//构造器完成的功能代码

}

构造器名必须和类名一致

构造器没有返回值类型

任何类都含有构造器。如果没有显式地定义类的构造器,

则系统会为该类提供一个默认的无参的构造器。一旦在类中显式地定义了构造器,系统就不会再为这个类提供默认的构造器了。

6.构造方法与创建对象

(1)构造方法是class类中特殊的方法

(2)使用类创建对象时,需要用到它的构造方法

(3)class类中构造方法的名字必须和class类的名字保持一致

(4)构造方法和普通的方法相比,构造方法没有类型,没有类型也就意味着构造方法不能有返回值

(5)一个class类中,如果没有自定义构造方法,那么该类会有一个默认的构造方法;如果用户自定义了构造方法,那么就不会有默认的构造方法

(6)默认的构造方法中没有任何参数,方法体中没有任何语句

(7)一个class类中可以有多个构造方法,但是每个构造方法的参数和参数类型应当有差别,以此来辨别不同的构造方法

(8)创建对象时,先声明对象,然后用new运算符和类的构造方法为声明的对象分配变量。类中没有自定义的构造方法时,使用默认的构造方法;有一个或多个构造方法时,使用指定的构造方法

对象的引用与实体

Point point = new Point();

Point:类名

point:对象名称

new Point():对象的实体

对象的引用就是存放对象的内存地址。

7.参数传值

其实java函数中的参数都是传递值的,所不同的是对于基本数据类型传递的是参数的一份拷贝,对于类类型传递的是该类参数的引用的拷贝,当在函数体中修改参数值时,无论是基本类型的参数还是引用类型的参数,修改的只是该参数的拷贝,不影响函数实参的值,如果修改的是引用类型的成员值,则该实参引用的成员值是可以改变的,

8.对象组合

类中包含某个对象,创建该类的对象时,该对象就会有其它对象

对于同一个类的两个对象,如果二者有同样的引用,就会用同样的实体,因此改变其 中一个对象的实体,就会导致另一个对象的实体发生同样的变化。

9.实例成员与类成员

类体中包括成员变量的声明和方法的定义,成员变量又分为实例变量和类变量,定义的方法可分为实例方法和类方法。

实例变量与类变量的区别:

(1)在声明成员变量时,用关键字static修饰的称作类变量(类变量也叫静态变量),否则称作实例变量。

(2)不同对象的实例变量互不相同。

(3)所有对象共享类变量。

(4)类变量可以直接通过类名访问,而实例变量不能,但是类变量和实例变量都可以通过对象访问。

实例方法和类方法的区别:

(1)声明方法时,方法类型前面不加关键字static修饰就是实例方法、加static修饰就是类方法(静态方法)

(2)对象调用实例方法,实例方法中不仅可以操作实例变量,也可以操作类变量。

(3)类名和对象调用类方法,类方法不可以操作实例变量。

10.方法重载

方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重多个方法在同一个类中多个方法具有相同的方法名多个方法的参数不相同,类型不同或者数量不同

方法重载特点

重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式

重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载

11.this关键字

this的两种使用方法:

如果发生局部变量和成员变量命名冲突时,可以通过this.成员变量名的方式区分成员变量和局部变量。

一个构造方法中需要调用本类的另一个构造方法,可以通过this()的方式调用,但this()必须要书写在第一行。

12.static关键字:

静态变量: 使用static修饰的成员变量叫做静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。static成员变量的初始化顺序按照定义的顺序进行初始化。

静态方法: 使用static修饰的成员方法叫做静态方法,静态方法可以不依赖于任何对象进行访问(对于静态方法来说,是没有this的),由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。

调用格式:类名.静态变量名 ,类名.静态方法名()

13.包

包的定义

java程序是由一个public类和众多非public的类组成,在java程序的第一行加入 package包名称;",就可以把*class文件保存在相应的包内;当需要调用此包中的类时,用“包名称,类名称”的格式调用,这样可以避免相同类名的冲突。

在命名包名称时,尽量避开与系统冲突的名字,例如java.lang等;同时包名一般都采用小写形式。一日程序类中出现了包名称之后,在执行程序使用类名称时,应尽量带上包名称,而不是进入包内执行。

在以后进行项目开发中,所有java文件一定要使用package定义包。

包的导入

因为包之间会存在相互调用的情况,一个包不但会调用本包中类,还会调用其他包中的类,所以需要用关键词“import”进行导入包中的类,格式:import 包名称类名称;

当需要导入其他包中的若干类,如果一个一个的写比较麻烦,可以用格式: import包名称*来完成导入。

使用通配符“*”并不意味着将包内的类全部导入,而是按照需求导入需要什么类就导入什么类。如果在不同的包中包含有相同名称的类名,可以采用包名称类名称加以区分

14.import语句

为了简化编程,Java 引入了 import 关键字,import 可以向某个 Java 文件中导入指定包层次下的某个类或全部类。. import 语句位于 package 语句之后,类定义之前。. 一个 Java 源文件只能包含一个 package 语句,但可以包含多个 import 语句。. 使用 import 导入单个类的语法格式如下:. import 包名+类名; 上面语句用于直接导入指定类,例如导入前面的 example.Test 类,代码如下:. import example.Test; 使用 import 语句导入指定包下全部类的用法按如下:. import example.*;

15.访问权限

Private

Protected

Public

友好的

15.jar文件

什么是jar包?

JAR文件的全称是Java Archive File,意思是Java档案文件。是一种压缩文件,与常见的ZIP压缩文件兼容。两者最大的区别是在JAR文件中默认包含一个名为META-INF/MANIFEST.MF的清单文件,这个文件是生成JAR文件时由系统自动创建的。

使用jar包的好处

安全,可以对其进行数字签名,只让能够识别数字签名的用户使用里面的东西。

加快下载速度;

压缩,使文件变小,与ZIP压缩机制完全相同。

包封装。能够让JAR包里面的文件依赖于统一版本的类文件。

可移植性,能够在各种平台上直接使用。

把一个JAR文件添加到系统的classpath环境变量之后,java通常会把这个JAR文件当做一个路径来处理。通常使用jar命令来压缩,可以把一个或多个路径全部压缩成一个JAR文件。

什么情况下使用jar包?

当开发一个应用程序后这个应用程序包含了很多类,如果需要把这个程序提供给别人使用,通常会将这些类文件打包成一个JAR文件,把这个文件提供给别人使用。只要在别人系统的CLASSPATH环境变量中添加这个文件,则java虚拟机就可以自动在内存中解压这个jar包。

标签: #java比较两个对象的差异