Java程序设计学习笔记【第三篇】面向对象程序设计基础,jdk和jre区别面试题

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

正文

//当我们需要通过汽车类来创建一个轿车对象,并使用它的刹车行为方法时,则要用下米娜的格式进行实例化

汽车 轿车 = new 汽车();

轿车.刹车();

3.2 类

类和对象是Java的核心和本质。定义类和建立对象是Java编写的主要任务。

3.2.1 类的定义

1.类的一般形式

类由类声明和类体组成,而类体又由成员变量和成员方法组成。

public class 类名 //类声明

{

成员变量;

成员方法; //类体

}

//举例

public class Hello //类声明

{

static String str; //成员变量

public static void main(String[] args)

{

st = “hello world”;

System.out.println(str); //成员方法

}

}

2.类声明

类声明由四部分组成:类修饰符、类关键字class、声明父类、实现接口。

一般形式为:

[public][abstract][final] class 类名 [extends 父类名] [implements 接口列表]

{

.

.

.

}

  1. 类修饰符

类修饰符含义如下:

  • public:声明了类可以在其他类中使用。

  • abstract:声明了这个类为抽象类,即这个类不能被实例化。

  • final:声明该类不能被继承,不能有子类。

  1. 类的关键词

声明类的关键字。通常情况下,类名要用大写字母开头,并且类名不能用阿拉伯数字开头。

  1. 声明父类

extends为声明该类的父类,表明该类是其父类的子类。一个子类可以从它的父类继承变量和方法。(单继承)

class SubClass extends 父类名

{

.

.

}

  1. 实现接口

接口是一个特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。

implements 接口1,接口2,…

3.2.2 成员变量和局部变量

成员变量和局部变量主要是根据在程序中所处的位置决定的。

#mermaid-svg-Npk8hCl6phsmtlll .label{font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family);fill:#333;color:#333}#mermaid-svg-Npk8hCl6phsmtlll .label text{fill:#333}#mermaid-svg-Npk8hCl6phsmtlll .node rect,#mermaid-svg-Npk8hCl6phsmtlll .node circle,#mermaid-svg-Npk8hCl6phsmtlll .node ellipse,#mermaid-svg-Npk8hCl6phsmtlll .node polygon,#mermaid-svg-Npk8hCl6phsmtlll .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-Npk8hCl6phsmtlll .node .label{text-align:center;fill:#333}#mermaid-svg-Npk8hCl6phsmtlll .node.clickable{cursor:pointer}#mermaid-svg-Npk8hCl6phsmtlll .arrowheadPath{fill:#333}#mermaid-svg-Npk8hCl6phsmtlll .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-Npk8hCl6phsmtlll .flowchart-link{stroke:#333;fill:none}#mermaid-svg-Npk8hCl6phsmtlll .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-Npk8hCl6phsmtlll .edgeLabel rect{opacity:0.9}#mermaid-svg-Npk8hCl6phsmtlll .edgeLabel span{color:#333}#mermaid-svg-Npk8hCl6phsmtlll .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-Npk8hCl6phsmtlll .cluster text{fill:#333}#mermaid-svg-Npk8hCl6phsmtlll div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-Npk8hCl6phsmtlll .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-Npk8hCl6phsmtlll text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-Npk8hCl6phsmtlll .actor-line{stroke:grey}#mermaid-svg-Npk8hCl6phsmtlll .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-Npk8hCl6phsmtlll .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-Npk8hCl6phsmtlll #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-Npk8hCl6phsmtlll .sequenceNumber{fill:#fff}#mermaid-svg-Npk8hCl6phsmtlll #sequencenumber{fill:#333}#mermaid-svg-Npk8hCl6phsmtlll #crosshead path{fill:#333;stroke:#333}#mermaid-svg-Npk8hCl6phsmtlll .messageText{fill:#333;stroke:#333}#mermaid-svg-Npk8hCl6phsmtlll .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-Npk8hCl6phsmtlll .labelText,#mermaid-svg-Npk8hCl6phsmtlll .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-Npk8hCl6phsmtlll .loopText,#mermaid-svg-Npk8hCl6phsmtlll .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-Npk8hCl6phsmtlll .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-Npk8hCl6phsmtlll .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-Npk8hCl6phsmtlll .noteText,#mermaid-svg-Npk8hCl6phsmtlll .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-Npk8hCl6phsmtlll .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-Npk8hCl6phsmtlll .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-Npk8hCl6phsmtlll .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-Npk8hCl6phsmtlll .mermaid-main-font{font-family:“trebuchet ms”, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-Npk8hCl6phsmtlll .section{stroke:none;opacity:0.2}#mermaid-svg-Npk8hCl6phsmtlll .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-Npk8hCl6phsmtlll .section2{fill:#fff400}#mermaid-svg-Npk8hCl6phsmtlll .section1,#mermaid-svg-Npk8hCl6phsmtlll .section3{fill:#fff;opacity:0.2}#mermaid-svg-Npk8hCl6phsmtlll .sectionTitle0{fill:#333}#mermaid-svg-Npk8hCl6phsmtlll .sectionTitle1{fill:#333}#mermaid-svg-Npk8hCl6phsmtlll .sectionTitle2{fill:#333}#mermaid-svg-Npk8hCl6phsmtlll .sectionTitle3{fill:#333}#mermaid-svg-Npk8hCl6phsmtlll .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-Npk8hCl6phsmtlll .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-Npk8hCl6phsmtlll .grid .tick text{font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-Npk8hCl6phsmtlll .grid path{stroke-width:0}#mermaid-svg-Npk8hCl6phsmtlll .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-Npk8hCl6phsmtlll .task{stroke-width:2}#mermaid-svg-Npk8hCl6phsmtlll .taskText{text-anchor:middle;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-Npk8hCl6phsmtlll .taskText:not([font-size]){font-size:11px}#mermaid-svg-Npk8hCl6phsmtlll .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-Npk8hCl6phsmtlll .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-Npk8hCl6phsmtlll .task.clickable{cursor:pointer}#mermaid-svg-Npk8hCl6phsmtlll .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-Npk8hCl6phsmtlll .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-Npk8hCl6phsmtlll .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-Npk8hCl6phsmtlll .taskText0,#mermaid-svg-Npk8hCl6phsmtlll .taskText1,#mermaid-svg-Npk8hCl6phsmtlll .taskText2,#mermaid-svg-Npk8hCl6phsmtlll .taskText3{fill:#fff}#mermaid-svg-Npk8hCl6phsmtlll .task0,#mermaid-svg-Npk8hCl6phsmtlll .task1,#mermaid-svg-Npk8hCl6phsmtlll .task2,#mermaid-svg-Npk8hCl6phsmtlll .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-Npk8hCl6phsmtlll .taskTextOutside0,#mermaid-svg-Npk8hCl6phsmtlll .taskTextOutside2{fill:#000}#mermaid-svg-Npk8hCl6phsmtlll .taskTextOutside1,#mermaid-svg-Npk8hCl6phsmtlll .taskTextOutside3{fill:#000}#mermaid-svg-Npk8hCl6phsmtlll .active0,#mermaid-svg-Npk8hCl6phsmtlll .active1,#mermaid-svg-Npk8hCl6phsmtlll .active2,#mermaid-svg-Npk8hCl6phsmtlll .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-Npk8hCl6phsmtlll .activeText0,#mermaid-svg-Npk8hCl6phsmtlll .activeText1,#mermaid-svg-Npk8hCl6phsmtlll .activeText2,#mermaid-svg-Npk8hCl6phsmtlll .activeText3{fill:#000 !important}#mermaid-svg-Npk8hCl6phsmtlll .done0,#mermaid-svg-Npk8hCl6phsmtlll .done1,#mermaid-svg-Npk8hCl6phsmtlll .done2,#mermaid-svg-Npk8hCl6phsmtlll .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-Npk8hCl6phsmtlll .doneText0,#mermaid-svg-Npk8hCl6phsmtlll .doneText1,#mermaid-svg-Npk8hCl6phsmtlll .doneText2,#mermaid-svg-Npk8hCl6phsmtlll .doneText3{fill:#000 !important}#mermaid-svg-Npk8hCl6phsmtlll .crit0,#mermaid-svg-Npk8hCl6phsmtlll .crit1,#mermaid-svg-Npk8hCl6phsmtlll .crit2,#mermaid-svg-Npk8hCl6phsmtlll .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-Npk8hCl6phsmtlll .activeCrit0,#mermaid-svg-Npk8hCl6phsmtlll .activeCrit1,#mermaid-svg-Npk8hCl6phsmtlll .activeCrit2,#mermaid-svg-Npk8hCl6phsmtlll .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-Npk8hCl6phsmtlll .doneCrit0,#mermaid-svg-Npk8hCl6phsmtlll .doneCrit1,#mermaid-svg-Npk8hCl6phsmtlll .doneCrit2,#mermaid-svg-Npk8hCl6phsmtlll .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-Npk8hCl6phsmtlll .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-Npk8hCl6phsmtlll .milestoneText{font-style:italic}#mermaid-svg-Npk8hCl6phsmtlll .doneCritText0,#mermaid-svg-Npk8hCl6phsmtlll .doneCritText1,#mermaid-svg-Npk8hCl6phsmtlll .doneCritText2,#mermaid-svg-Npk8hCl6phsmtlll .doneCritText3{fill:#000 !important}#mermaid-svg-Npk8hCl6phsmtlll .activeCritText0,#mermaid-svg-Npk8hCl6phsmtlll .activeCritText1,#mermaid-svg-Npk8hCl6phsmtlll .activeCritText2,#mermaid-svg-Npk8hCl6phsmtlll .activeCritText3{fill:#000 !important}#mermaid-svg-Npk8hCl6phsmtlll .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-Npk8hCl6phsmtlll g.classGroup text{fill:#9370db;stroke:none;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family);font-size:10px}#mermaid-svg-Npk8hCl6phsmtlll g.classGroup text .title{font-weight:bolder}#mermaid-svg-Npk8hCl6phsmtlll g.clickable{cursor:pointer}#mermaid-svg-Npk8hCl6phsmtlll g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-Npk8hCl6phsmtlll g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-Npk8hCl6phsmtlll .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-Npk8hCl6phsmtlll .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-Npk8hCl6phsmtlll .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-Npk8hCl6phsmtlll .dashed-line{stroke-dasharray:3}#mermaid-svg-Npk8hCl6phsmtlll #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Npk8hCl6phsmtlll #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Npk8hCl6phsmtlll #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-Npk8hCl6phsmtlll #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-Npk8hCl6phsmtlll #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Npk8hCl6phsmtlll #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Npk8hCl6phsmtlll #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Npk8hCl6phsmtlll #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Npk8hCl6phsmtlll .commit-id,#mermaid-svg-Npk8hCl6phsmtlll .commit-msg,#mermaid-svg-Npk8hCl6phsmtlll .branch-label{fill:lightgrey;color:lightgrey;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-Npk8hCl6phsmtlll .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-Npk8hCl6phsmtlll .slice{font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-Npk8hCl6phsmtlll g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-Npk8hCl6phsmtlll g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-Npk8hCl6phsmtlll g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-Npk8hCl6phsmtlll g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-Npk8hCl6phsmtlll g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-Npk8hCl6phsmtlll g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-Npk8hCl6phsmtlll .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-Npk8hCl6phsmtlll .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-Npk8hCl6phsmtlll .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-Npk8hCl6phsmtlll .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-Npk8hCl6phsmtlll .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-Npk8hCl6phsmtlll .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-Npk8hCl6phsmtlll .edgeLabel text{fill:#333}#mermaid-svg-Npk8hCl6phsmtlll .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-Npk8hCl6phsmtlll .node circle.state-start{fill:black;stroke:black}#mermaid-svg-Npk8hCl6phsmtlll .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-Npk8hCl6phsmtlll #statediagram-barbEnd{fill:#9370db}#mermaid-svg-Npk8hCl6phsmtlll .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-Npk8hCl6phsmtlll .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-Npk8hCl6phsmtlll .statediagram-state .divider{stroke:#9370db}#mermaid-svg-Npk8hCl6phsmtlll .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-Npk8hCl6phsmtlll .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-Npk8hCl6phsmtlll .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-Npk8hCl6phsmtlll .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-Npk8hCl6phsmtlll .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-Npk8hCl6phsmtlll .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-Npk8hCl6phsmtlll .note-edge{stroke-dasharray:5}#mermaid-svg-Npk8hCl6phsmtlll .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{–mermaid-font-family: ‘“trebuchet ms”, verdana, arial’;–mermaid-font-family: “Comic Sans MS”, “Comic Sans”, cursive}#mermaid-svg-Npk8hCl6phsmtlll .error-icon{fill:#522}#mermaid-svg-Npk8hCl6phsmtlll .error-text{fill:#522;stroke:#522}#mermaid-svg-Npk8hCl6phsmtlll .edge-thickness-normal{stroke-width:2px}#mermaid-svg-Npk8hCl6phsmtlll .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-Npk8hCl6phsmtlll .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-Npk8hCl6phsmtlll .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-Npk8hCl6phsmtlll .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-Npk8hCl6phsmtlll .marker{fill:#333}#mermaid-svg-Npk8hCl6phsmtlll .marker.cross{stroke:#333} :root { --mermaid-font-family: “trebuchet ms”, verdana, arial;} #mermaid-svg-Npk8hCl6phsmtlll { color: rgba(0, 0, 0, 0.75); font: ; }

变量

成员变量

局部变量

在类体定义

在方法中定义

class Data

{

int x,y; //x、y为成员变量

public void sum()

{

int s; //s为局部变量

s = x + y;

}

}

如果局部变量与成员变量相同,则成员变量被屏蔽。

class Data

{

int x = 12,y = 5; //此时成员变量x=12将被屏蔽

public void sum()

{

int x =3;

int s;

s = x + y;

}

}

如果我们在sum内部确实需要需要是用成员变量,可以使用关键词this来引用当前对象,它的值是调用该方法的对象。

class Data

{

int x = 12,y = 5; //此时成员变量x=12将被屏蔽

public void sum()

{

int x =3;

int s;

s = this.x + y; //这里将使用成员对象X

}

}

3.3 成员方法

在java中,必须通过方法才能完成对类的属性操作。成员方法只能在类的内部声明加以实现。一般在类体中声明成员变量之后再声明方法。

3.3.1 方法的定义

方法的定义类似于类的定义,由方法声明和方法体两部分组成。

返回类型 方法名(数据类型1 参数1 ,数据类型2 参数2,。。。) //方法声明

{

…(局部变量定义);

…(方法功能实现); //方法体

return(返回值);

}

例:

public static void main(String[] srgs)

{

String str = “hello world !”;

System.out.println(str);

}

  • 方法不允许嵌套定义,即不允许一个方法的定义放在另一个方法的定义中。

  • 在方法的定义中,方法的类型是该方法返回值的数据类型。

3.3.2 方法的调用

我们把调用其他方法的方法称为主调方法,被其他方法调用的方法称为被调方法。

方法的调用格式:

函数名(实际参数1,实际参数2,。。。。);

单个参数的调用

import javax.swing.*;

public class Exanmple

{

public static void main(String[] args)

{

int sum = mysum(100); //调用mysum方法

JOptionPane.showMessageDialog(null,"1+2+3+4+…+100 = "+ sum);

System.exit(0);

}

static int mysum(int n)

{

int i,s = 0;

for(i = 1;i<=n;i++) //形参n以100进行计算

s = a + i;

return s; //计算结果返回给被调函数

}

}

多个参数的调用同理!!!!

调用过程中参数是通过实参向形参传值的。

这里我看书上给了一个传值的过程图,看着略显复杂,其实真的不难理解!

在这里插入图片描述


这里引入了一个堆栈的概念:(主调方法为实参赋值,将实参值存放到内存中专门存放临时变量的区域中。这块存储区域称为堆栈。)


3.3.3 方法重载

方法重载是指多个方法享有相同的名字,但这些方法的参数必须不同,或者是参数的个数不同,或者是参数的类型不同,返回类型不能用来区分重载的方法。

这里如果单纯地看这段文字多少有些干涩,我们通过一个例子来理解:

举例:(两个数求和)

public class Tester {

public static void main(String[] args) {

Tools t = new Tools();

int x0 = t.add(3,5);

System.out.println(“参数个数为2时,和为” + x0);

int x1 = t.add(3,5,6);

System.out.println(“参数个数为3时,和为” + x1);

}

}

public class Tools {

int add(int a , int b) //参数个数为2

{

return a + b;

}

int add(int a,int b,int c) //参数个数为3

{

return a + b + c;

}

}

此时运行结果如图:

在这里插入图片描述

通过单步调试我们会发现,程序运行时会根据我们参数的个数在相同名字的方法里选择合适的一个!!

重载使得程序的实现方式变得很简单,只需要一个方法名,就可以根据不同的参数个数选择该方法的不同版本。

3.3.4 构造方法

构造方法是一个特殊的方法,主要用于初始化新创建的对象。构造方法的方法名要与类名相同,且无返回值。


注意:这里说的构造方法无返回值,并不是要在构造方法名前加上void ,构造方法名是不能有void的,如果在构造方法名前加了void,系统就不会自动调用该方法了。

一个类可以创建多个构造方法,当类中包含多个构造方法时,将根据参数的不同来决定要用哪个构造方法来初始化新创建对象的状态,达到方法重载的目的。

举例:(求长方形的面积)


public class Rectangle {

int width,length;

Rectangle(){ //构造方法,没有参数,方法名与类名相同

length = 2;

width = 2;

}

Rectangle(int len,int wid){ //构造方法,带有参数

length = len;

width = wid;

}

int getArea()

{

return length*width;

}

}

public class Tester {

public static void main(String[] args) {

Rectangle rect_1 = new Rectangle();

Rectangle rect_2 = new Rectangle(6,4); //应用构造方法创建实例对象

int area_1 = rect_1.getArea();

int area_2 = rect_2.getArea();

System.out.println(“长方形的面积为:” + area_1);

System.out.println(“长方形的面积为:” + area_2);

}

}

运行结果:

在这里插入图片描述

&&:在一个类的程序中,也可以没有定义构造方法,则Java系统会认为是定义了一个缺省构造方法,缺省构造方法是无任何内容的空方法。当编写类时,只有在需要进行一些特别初始化的场合,才需要定义构造方法。

直接给一个书上的例子:

/缺省构造方法构造长方体类/

class Box

{

double width,height,depth;

double volume() //计算长方体体积

{

width = 10;

height =10;

depth =10;

return widthheightdepth;

}

}

public class Example

{

public static void main(String[] args)

{

Box box = new Box; // 应用缺省方法创建实例对象

double v;

v = box .volume();

System.out.println(“长方体体积为:” + v);

}

}


3.4 对象

通过前面我们知道类是一个抽象的概念,而对象是类的具体化。

一个对象的生命周期包括三个阶段:创建、使用和释放。

需要注意的是:对象是引用类型,因此,对象名这个变量,其值是一个长整型(代表了另外一个内存单元的首地址)。对象实体对应的内存在首地址指向的另一地方。


类名 对象名 = new 类名([参数列表])

这一表达式隐含三部分:对象声明 实例化 初始化

/对象声明/

类名 对象名;

/实例化/

对象名 = new 构造方法();

2.对象的使用

访问对象成员变量的格式:

对象.成员变量;

调用对象成员方法的格式:

对象名.方法名([参数列表]);

3.5 面向对象特性

Java语言中有三个典型的面向对象的特性:封装性、继承性、多态性。


3.5.1 封装性

封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节。

在Java语言中,对象就是对一组变量和相关方法的封装,其中变量表明了对象的态度,方法表明了对象具有的行为。通过对象的封装,实现了模块化和信息隐蔽。

1.修饰符

为了对类对象封装,通过对类成员修饰符 施以一定的访问权限,从而实现类中成员的信息隐藏

类体定义的格式:

class 类名

{

[变量修饰符] 类型 成员变量名;

[方法修饰符] 返回类型 方法名(参数){…}

}

2.访问权限的限定

在类体成员定义的修饰符可选项中,提供了4种不同的访问权限。它们是private、default、protected 和 public。

  1. private

在一个类中被限定为private的成员,只能被这个类本身访问,其他类无法访问。如果一个类的构造方法声明为private,则其他类不能生成该类的一个实例。

  1. default

在一个类中不加任何访问权限限定的成员属于缺省的(default)访问状态,可以被这个类本身和同一个包中的类所访问。

  1. protected

在一个类中被限定为protected的成员,可以被这个类本身、它的子类(包括同一个包中以及不同包中的子类)和同一个包中的所有其他的类访问。

  1. public

在一个类中限定为public的成员,可以被所有的类访问。

3.5.2 继承性

继承性是面向对象程序中两个类之间的一种关系,即一个类可以从另一个类继承状态和行为。

被继承的类称为父类(超类),继承的类称为子类。

Java不支持多重继承!!!

1.子类的定义

class 父类

{

}

class 子类 extends 父类

{

} //继承实现了代码复用

举例:

这里我们以同时输出老师和学生的信息为例:

//原始思路:定义老师和学生两个类和各自的信息,主类调用输出

//利用继承思路:我们定义一个公共的Person类,用老师和学生的类继承该Person类

代码展示:

//Tester.java

public class Tester {

public static void main(String[] args) {

Teacher t = new Teacher();

Student s = new Student();

t.name = “张老师”;

t.age = 35;

t.mobile = “15571569574”;

t.Output();

s.name = “李小华”;

s.age = 20;

s.mobile = “17255617524”;

s.Output();

}

}

//Person.java

public class Person {

String name;

int age;

String mobile;

void Output()

{

System.out.println(“全部信息为:” + name + “-” + age + “-” + mobile);

}

}

//Teacher.java

public class Teacher extends Person { //继承Person类

}

//Student.java

public class Student extends Person { //继承Person类

}

运行截图:

在这里插入图片描述

分析:从上面的这个例子不难看出,当我们在某些类中有相同的操作,比如输出相同的信息,我们不需要逐个类进行操作,可以给这些类一个父类,让它们继承父类的属性,这样一来就减少了代码量,提高工作效率。

创建子类对象时,Java虚拟机首先执行父类的构造方法,然后再执行子类的构造方法。

在这里插入图片描述

在这里插入图片描述

从本程序的运行结果可以看出:

(1)父类的构造方法也会被子类继承,且Java虚拟机首先执行父类的构造方法。

(2)在多继承的情况下,创建子对象时,将从继承的最上层父类开始,依次执行各方法。

2.成员变量的隐藏和方法的重写

子类通过隐藏父类的成员和重写父类的方法,可以把父类的状态和行为改变为自身的状态和行为。

calss A //父类

{

int x;

void setX(){

x = 0;

}

}

class B extendas A //子类

{

int x; //隐藏父类的变量x

void setX(){ //重写父类的方法,此时将调用子类自己的方法

x = 5;

}

}

线程、数据库、算法、JVM、分布式、微服务、框架、Spring相关知识

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一线互联网P7面试集锦+各种大厂面试集锦

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

学习笔记以及面试真题解析

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

g?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2sxNTA3MTU3,size_16,color_FFFFFF,t_70#pic_center)

在这里插入图片描述

从本程序的运行结果可以看出:

(1)父类的构造方法也会被子类继承,且Java虚拟机首先执行父类的构造方法。

(2)在多继承的情况下,创建子对象时,将从继承的最上层父类开始,依次执行各方法。

2.成员变量的隐藏和方法的重写

子类通过隐藏父类的成员和重写父类的方法,可以把父类的状态和行为改变为自身的状态和行为。

calss A //父类

{

int x;

void setX(){

x = 0;

}

}

class B extendas A //子类

{

int x; //隐藏父类的变量x

void setX(){ //重写父类的方法,此时将调用子类自己的方法

x = 5;

}

}

线程、数据库、算法、JVM、分布式、微服务、框架、Spring相关知识

[外链图片转存中…(img-ZMGyOtOY-1713628795944)]

一线互联网P7面试集锦+各种大厂面试集锦

[外链图片转存中…(img-7FZJJssG-1713628795945)]

学习笔记以及面试真题解析

[外链图片转存中…(img-9wYKs30N-1713628795945)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-YpWHmnQV-1713628795945)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值