百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Java类与对象知识点总结(java第十一章类和对象)

myzbx 2025-07-21 16:29 3 浏览

#头号有新人# #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基础都在这了,小主们拿去吧(java基础总结大全)

-----面向对象---------面向对象和面向过程的区别?面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事务在整个问题中的行为。面向过程是分析出解决问...

Java 8:一文掌握 Lambda 表达式 | CSDN 博文精选

作者|Android大强哥责编|郭芮出品|CSDN博客本文将介绍Java8新增的Lambda表达式,包括Lambda表达式的常见用法以及方法引用的用法,并对Lambda...

如何理解Python类中的self?(python方法中self.属性)

许多python初学者,在接触到python面向对象的时候,就被类中包含的方法中的self打败了,不知道self是何物?既然写在方法中,是必须参数,为何在调用方法的时候不给它传参数还能正常运行?和我们...

javascript的this用法(javascript中的this)

this是Javascript语言的一个关键字。它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如,functiontest(){this.x=1;}随着函数使用场合的不同,th...

JavaScript 的 this 原理是什么?(js中this的含义)

JavaScript中的this是一个关键字,代表当前执行代码的上下文对象。它的值在运行时确定,根据不同的调用方式和执行环境,this的值也会发生变化。具体来说,this的取值规则如下:如果...

小白学习Java开发如何入门?你可能需要这份学习路线图

21世纪进入信息时代,信息科技给人类的生产和生活方式带来了深刻的变革,信息产业已成为推动国家经济发展的主导产业之一,Java作为含金量极高的一门IT技术,很多人希望从事这个行业,那么想学好Java,要...

Java类与对象知识点总结(java第十一章类和对象)

#头号有新人##java#1.类与对象java是一门纯面向对象的语言,在java面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要是要依靠对象之间的交互完成一件事情。用面向对象的思想...

JavaScript面试题精选:10个高频问题详解

引言JavaScript是现代Web开发的支柱。无论您是在准备面试还是复习知识,这里有10个经常被问到的JavaScript问题,配有简洁准确的答案。1.var、let和const有什么区别?v...

三石说:java基础 类与对象(java类和对象总结)

类:类是封装对象的行为和属性的载体,具有相同属行和行为的一类实体。类中包含方法和属性。类中的构造方法:1.构造方法没有返回值2.名称与类名相同,在构造方法中可以为成员变量赋值,也就是初始化成员变量,若...

C#自学——委托、LINQ(c#中委托)

委托的概念委托是一种可以指向方法的数据类型(委托类型),可以声明委托类型的变量数据类型指的是类似类的,前面提到过一切皆对象,委托就是将方法当作对象使用声明委托delegate返回值类型委托类型名称...

JVM(三)对象的生死判定和算法详解

导读:对象除了生死之外,还有其他状态吗?对象真正的死亡,难道只经历一次简单的判定?如何在垂死的边缘“拯救”一个将死对象?判断对象的生死存活都有那些算法?本文带你一起找到这些答案。在正式开始之前,我们先...

这几道面试题,可以考考自己(面试真题去哪里找)

选择几道主流面试题,让大家自我检验一下,理论与实践相结合,才能更容易拿到高薪。Copy如何在.NET中做deepcopy?1)使用序列化反序列化对象实现深度克隆2)使用反射实现深度克隆trycat...

掌握 C# 和 .NET:常用术语与概念(c#用于什么)

在群里看到一则招聘信息,《基本功扎实,对DDD、OO、IOC、AOP等有深刻认识,熟悉常用设计模式。》OO是什么??查了一下原来OO原来指的是面向对象编程(OOP),于是就总结了一些常用的术语...

Java新特性:Lambda表达式(java lambda表达式的3种简写方式)

1、Lambda表达式概述1.1、Lambda表达式的简介Lambda表达式(Lambdaexpression),也可称为闭包(Closure),是Java(SE)8中一个重要的新特性。Lam...

JS的this指向问题(js如何改变this指向)

一句话概括this指向:谁调用this就指向谁这句话可能太过广义,那么请看以下的各种this指向场景1.箭头函数(=>)箭头函数this的指向不会发生改变,也就是说在创建箭头函数时就已经确定了...