Java类与对象知识点总结(java第十一章类和对象)
myzbx 2025-07-21 16:29 60 浏览
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包。
相关推荐
- 如何设计一个优秀的电子商务产品详情页
-
加入人人都是产品经理【起点学院】产品经理实战训练营,BAT产品总监手把手带你学产品电子商务网站的产品详情页面无疑是设计师和开发人员关注的最重要的网页之一。产品详情页面是客户作出“加入购物车”决定的页面...
- 怎么在JS中使用Ajax进行异步请求?
-
大家好,今天我来分享一项JavaScript的实战技巧,即如何在JS中使用Ajax进行异步请求,让你的网页速度瞬间提升。Ajax是一种在不刷新整个网页的情况下与服务器进行数据交互的技术,可以实现异步加...
- 中小企业如何组建,管理团队_中小企业应当如何开展组织结构设计变革
-
前言写了太多关于产品的东西觉得应该换换口味.从码农到架构师,从前端到平面再到UI、UE,最后走向了产品这条不归路,其实以前一直再给你们讲.产品经理跟项目经理区别没有特别大,两个岗位之间有很...
- 前端监控 SDK 开发分享_前端监控系统 开源
-
一、前言随着前端的发展和被重视,慢慢的行业内对于前端监控系统的重视程度也在增加。这里不对为什么需要监控再做解释。那我们先直接说说需求。对于中小型公司来说,可以直接使用三方的监控,比如自己搭建一套免费的...
- Ajax 会被 fetch 取代吗?Axios 怎么办?
-
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!今天给大家带来的主题是ajax、fetch...
- 前端面试题《AJAX》_前端面试ajax考点汇总
-
1.什么是ajax?ajax作用是什么?AJAX=异步JavaScript和XML。AJAX是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX可以使网页实...
- Ajax 详细介绍_ajax
-
1、ajax是什么?asynchronousjavascriptandxml:异步的javascript和xml。ajax是用来改善用户体验的一种技术,其本质是利用浏览器内置的一个特殊的...
- 6款可替代dreamweaver的工具_替代powerdesigner的工具
-
dreamweaver对一个web前端工作者来说,再熟悉不过了,像我07年接触web前端开发就是用的dreamweaver,一直用到现在,身边的朋友有跟我推荐过各种更好用的可替代dreamweaver...
- 我敢保证,全网没有再比这更详细的Java知识点总结了,送你啊
-
接下来你看到的将是全网最详细的Java知识点总结,全文分为三大部分:Java基础、Java框架、Java+云数据小编将为大家仔细讲解每大部分里面的详细知识点,别眨眼,从小白到大佬、零基础到精通,你绝...
- 福斯《死侍》发布新剧照 "小贱贱"韦德被改造前造型曝光
-
时光网讯福斯出品的科幻片《死侍》今天发布新剧照,其中一张是较为罕见的死侍在被改造之前的剧照,其余两张剧照都是死侍在执行任务中的状态。据外媒推测,片方此时发布剧照,预计是为了给不久之后影片发布首款正式预...
- 2021年超详细的java学习路线总结—纯干货分享
-
本文整理了java开发的学习路线和相关的学习资源,非常适合零基础入门java的同学,希望大家在学习的时候,能够节省时间。纯干货,良心推荐!第一阶段:Java基础重点知识点:数据类型、核心语法、面向对象...
- 不用海淘,真黑五来到你身边:亚马逊15件热卖爆款推荐!
-
Fujifilm富士instaxMini8小黄人拍立得相机(黄色/蓝色)扫二维码进入购物页面黑五是入手一个轻巧可爱的拍立得相机的好时机,此款是mini8的小黄人特别版,除了颜色涂装成小黄人...
- 2025 年 Python 爬虫四大前沿技术:从异步到 AI
-
作为互联网大厂的后端Python爬虫开发,你是否也曾遇到过这些痛点:面对海量目标URL,单线程爬虫爬取一周还没完成任务;动态渲染的SPA页面,requests库返回的全是空白代码;好不容易...
- 最贱超级英雄《死侍》来了!_死侍超燃
-
死侍Deadpool(2016)导演:蒂姆·米勒编剧:略特·里斯/保罗·沃尼克主演:瑞恩·雷诺兹/莫蕾娜·巴卡林/吉娜·卡拉诺/艾德·斯克林/T·J·米勒类型:动作/...
- 停止javascript的ajax请求,取消axios请求,取消reactfetch请求
-
一、Ajax原生里可以通过XMLHttpRequest对象上的abort方法来中断ajax。注意abort方法不能阻止向服务器发送请求,只能停止当前ajax请求。停止javascript的ajax请求...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 简介 (30)
- HTML 响应式设计 (31)
- HTML URL 编码 (32)
- HTML Web 服务器 (31)
- HTML 表单属性 (32)
- HTML 音频 (31)
- HTML5 支持 (33)
- HTML API (36)
- HTML 总结 (32)
- HTML 全局属性 (32)
- HTML 事件 (31)
- HTML 画布 (32)
- HTTP 方法 (30)
- 键盘快捷键 (30)
- CSS 语法 (35)
- CSS 轮廓宽度 (31)
- CSS 谷歌字体 (33)
- CSS 链接 (31)
- CSS 定位 (31)
- CSS 图片库 (32)
- CSS 图像精灵 (31)
- SVG 文本 (32)
- 时钟启动 (33)
- HTML 游戏 (34)
- JS Loop For (32)
