一、理解“万事万物皆对象”。

1.在java语言范畴中,我们都将功能、结构等封装到类中,通过类的实例化,来调用具体的功能结构。

2.涉及到java语言与前端html、后端的数据库交互时,前后端的结构在java层面交互时,都体现为类、对象。

二、匿名对象

1.理解:我们创建的对象,没有显式的赋给一个变量名。即是匿名对象。

2.特征:匿名对象只能调用一次。

3.使用场景:

    格式:new People . eat();通过People的匿名对象调用eat方法

    适合场景:当一个方法中形参是一个我们所创建的类的变量时,可以直接通过sleep.show(new People());快速导入该类的实例赋值给形参。

三、再谈方法:

1.方法的重载:

在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

2.重载的特点:

与返回值无关,只看参数列表,且参数列表必须不同。(参数个数或者参数类型)调用时,根据方法的参数列表的不同来区别调用的是哪个方法。

3.可变个数形参的方法:

javase5.0中新增了Varargs机制,允许直接定义能和多个实参相匹配的形参。从而,可以用一种更简单的方式,来传递个数可变的实参。

*具体使用:

3.1可变个数形参的格式:数据类型...变量名

public void show(String ... strs){
}

3.2当调用可变个数形参的方法时,传入的参数个数可以是:0个、1个、2个...

3.3可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载。

3.4但是注意,可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。其实二者功能相同,只不数组是5.0之前用来传可变参数的。代码如下:

public void show(String[] strs){
}

3.5可变个数形参在方法的形参中,必须声明在末尾

3.6可变个数形参在方法的形参中,最多只能声明一个可变形参。

4.方法参数的值传递机制:

关于变量的赋值:

  如果变量是基本数据类型,此时赋值的是变量所保存的数据值。

  如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。

方法的形参的传递机制:值传递

1.值传递机制:

*如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。

这个是什么意思呢?请看下图:

在main和swap方法中,m和n都是局部变量,前面提到过,凡是局部变量都是加载在栈中的,于是就变成上图所示情况,所以之后在main中打印m,n其实打印的是main中本来的m,n。

*如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值。

这个又是什么意思呢?请看下图:

5.递归方法:

5.1方法递归包含了一种隐式的循环,它会重复执行某段代码,但是这种重复执行无须循环控制。

5.2递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似于死循环。

末尾一道有意思的题目:

int[] arr = new int[]{1,2,3,4};
System.out.println(arr);//地址值 char[] arr1 = new char[]{'a','b','c'};
System.out.println(arr1);

打印后会发现,第一个打印的是一个地址值,第二个打印的却是a,b,c。

这是为什么呢?

原来在println方法中,第一个调用的是println(Objiect)方法,而println有一个专门的println(char【】)方法,第二个调用的是这个,所以打印的结果不同。

java面向对象概念2的更多相关文章

  1. java面向对象概念1

    一.java面向对象学习的三条主线: 1.java类及类的成员:属性.方法.构造器:代码块.内部类 2.面向对象的三大特征:封装性.继承性.多态性.(抽象性) 3.其它关键字:this.super.s ...

  2. java————面向对象概念

    面向对象 OO:面向对象 OOP:面向对象编程 OOA:面向对象分析 OOD:面向对象设计 面向对象的特征 继承,封装,多态 什么是对象? 对象是存在的具体实体,具有明确定义的特征和行为. 万物皆对象 ...

  3. Java 面向对象概念

    Interface 接口 An interface defines a protocol of communication between two objects. An interface decl ...

  4. Java面向对象-面向对象编程之基本概念

    面向对象这个概念,每本书上的说法定义很多. 我自己根据我的经验,自己归档总结了下, 所谓面向对象,就是 以基于对象的思维去分析和解决问题,万物皆对象: 面向对象经常和面向过程放一起讨论: 这里举例, ...

  5. java面向对象1-面向对象概念

    面向对象概念-类与对象的关系 封装:指隐藏对象的属性和实现细节,仅对外提供公共访问方式,private-构造方法/构造器-this关键字-static关键字(javadoc制作工具类) -代码块 继承 ...

  6. 087 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 01 封装的概念和特点

    087 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 01 封装的概念和特点 本文知识点:封装的概念和特点 说明:因为时间紧张,本人写博客过程中只是对 ...

  7. 谈谈Java面向对象的三大特性

    Java面向对象的三大特性就是指封装.继承.多态了. 一.封装: 概念:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. (举例:笔记本电脑就是一个封装体,Java语言中最小的封装体就是函数 ...

  8. java基础1.0::Java面向对象、面向对象封装、抽象类、接口、static、final

    一.前言 一直以来都是拿来主义,向大神学习,从网上找资料,现在就把自己在工作中和学习中的所理解的知识点写出来,好记星不如烂笔头,一来可以作为笔记自己温习,二来也可以给走在求学之路的同学们一点参考意见, ...

  9. JAVA课程实验报告 实验二 Java面向对象程序设计

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计  班级:1353  姓名:韩玉琪  学号:20135317 成绩:             指导教师:娄嘉 ...

随机推荐

  1. 全新的css网站布局--Grid布局

    Grid布局全新的css网站布局 CSS Grid 布局由两个核心组成部分是 wrapper(父元素)和 items(子元素). wrapper 是实际的 grid(网格),items 是 grid( ...

  2. 对max_allowed_packet这个参数的误解

    之前一篇文章知识对,这个参数一个泛泛的概念,但是并没有理解这个参数的真正意义,现在差不多有那么点儿感觉了,主要的意思是每一条记录是一个包,不可拆分,而且包括blob,text等大字段.

  3. Lua与C交换

    1.C调用Lua函数 (1) 首先要进行Lua的初始化,这个主要是lua_open和luaL_openlibs函数 (2)然后是解析并编译lua的代码,这个主要是luaL_dofile函数  (3) ...

  4. C#中一个窗口是一个类呢,还是一个窗口类的实例呢?(转)

    C#中一个窗口是一个类呢,还是一个窗口类的实例呢? 答: 没有一个人说到重点上. 一个窗口,它不是仅仅用一个类可以描述的: 首先,这个窗口的数据类型类型,是从Form类派生下来的,也就是说它的定义是一 ...

  5. JMS 之 Active MQ 的消息传输

    本文使用Active MQ5.6 一.消息协商器(Message Broker) broke:消息的交换器,就是对消息进行管理的容器.ActiveMQ 可以创建多个 Broker,客户端与Active ...

  6. Go 语言并发笔记

    前言: 本文是学习<<go语言程序设计>> -- 清华大学出版社(王鹏 编著) 的2014年1月第一版 做的一些笔记 , 如有侵权, 请告知笔者, 将在24小时内删除, 转载请 ...

  7. spring boot返回Josn的两种方式

    1.Controller类上加@RestController注解 2.Controller类上加@Controller注解,Action接口上加@ResponseBody注解 @Responsebod ...

  8. charCodeAt方法以及Unicode中文汉字编码范围

    js的charCodeAt() 方法可返回指定位置的字符的 Unicode 编码.这个返回值是 0 - 65535 之间的整数. 在字符串 "Hello world!" 中,我们将 ...

  9. critical section的用法

    critical section Critical Section: 不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问.每个进程中访问临界资源的那段代码称为临界区(Critical ...

  10. Alpha冲刺(八)

    Information: 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Details: 组员1(组长)柯奇豪 过去两天完成了哪些任务 进一步优化代码,结合自己负责的部分修 ...