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

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. 无网络安装mysql步骤

    1. 先安装Microsoft Visual C++ 2010 运行环境,运行vcredist_x86.exe文件: 2. 安装MySql数据库,运行mysql-installer-community ...

  2. Smarty模板的引用

    (1)include用法和php里的include差不多(2)smarty的include还具备自定义属性的功能例如 {include file="header.tpl" titl ...

  3. SQL2000中创建作业(定时查询,更新)(转)

    出处:http://blog.csdn.net/xys_777/article/details/5683413 SQL2000中创建作业(定时查询,更新)企业管理器 --管理 --SQL Server ...

  4. 34 输入3个数a,b,c,按大小顺序输出

    题目:输入3个数a,b,c,按大小顺序输出 public class _034Sorting { public static void main(String[] args) { sorting(); ...

  5. Alpha冲刺(四)

    Information: 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Details: 组员1(组长)柯奇豪 过去两天完成了哪些任务 文章基本的存储.列表生成显示 展示G ...

  6. Servlet 学习总结-1

    JavaWeb应用程序中所有的请求-响应都是由Servlet来完成的.Servlet是Java Web的核心程序,所有的网址(请求-响应)都交给Servlet来处理. Servlet在Web应用中被映 ...

  7. memcached整理の内存管理及删除机制

    内存的碎片化 如果用C语言直接malloc,free来向操作系统申请和释放内存时,在不断申请和释放的过程中,形成了一些很小的内存片段,无法再利用.这种空闲但无法利用内存的现象称为内存的碎片化. sla ...

  8. UniCode编码表及部分不可见字符过滤方案

    Unicode编码表/0000-0FFF 图例: Unicode 3.1 Unicode 1.0 Unicode 3.2 Unicode 1.1 Unicode 4.0 Unicode 2.0 Uni ...

  9. 生成文件的MD5、SHA、SHA256

    生成文件的MD5.SHA.SHA256 Linux系统生成MD5.SHA.SHA256md5sum file1.zip  >> MD5.txt sha1sum file1.zip > ...

  10. 格式化JavaScript代码

    javascript代码格式化工具 网上下载的js代码经常遇到代码已被压缩(注释.换行.缩进.空格.TAB等都被删除了),如果拿来学习.研究的话必定看到头晕.有些编辑器的“格 式化代码”功能可以解决这 ...