一、函数的引入

  1. 函数的引入

    能把相同的代码都抽出来,放到一个地方,等到要使用的时候再去调用,如果有不同的数据,在使用的时候传递就行了;

  2. 函数的概念:函数又叫方法,一段独立于代码块 直接卸载类中,实现独立的方法

  3. 函数的作用:解决的代码的重用性差的问题

  4. 函数的书写方式

  修饰符 返回值类型 方法名(参数类型1,参数类型2,参数类型3,参数类型.....)

  {

    功能代码(方法体)

    return 返回值的数据

  }

  

  注意

  

void:

表示函数不需要返回结果时的函数返回值类型;

return:

表示结束当前所在函数,同时如果函数有结果返回,就通过return将结果返回给调用者;

所有函数都是通过return结束运行的;

如果函数返回值类型是void,return可以省略不写,但是编译器会帮我们加上;

二、函数的使用

  1.  函数的声明

  

总结:声明一个函数,需要先明确两个东西:

1、函数的返回值类型;

2、函数的参数列表;

  

  2. 函数的调用

  3. 函数的书写误区  

    误区:就是在函数定义的功能之外书写额外的功能;

  

  

  总结:一个函数一个功能,不属于这个函数的功能,就要新建一个函数实现;

  一般,一个函数也不要写太长,一般二三十行够了,再多,就要分解功能,写到不同函数中,在调用;

  所以以后的开发中,新功能都要新建一个函数实现,main函数中,只是写功能的调用;

  4. 函数执行内存图解

  

总结:Java中,所有函数都是在栈内存中执行的,都是通过return关键字出栈的;

栈内存的特点是先进后出;正在执行的函数一定是位于栈顶的函数,在栈底的函数一定是main函数;

当main函数出栈,整个程序也将结束运行;

三、函数的重载

  
  为什么函数可以重载

  

  1. 定义

  同一类中 可以定义方法名相同而参数列表不同的函数

      参数列表不同: a. 参数个数不同     

                void method(int a);

                void method(int a,int b)

             b.不同类型的参数的顺序不同       

                void method(int a,int b)

                //void method(int b,int a):不算

                void method(int a,char b);

                void method(char a,int b);这个参数列表顺序不同

强调:函数的重载,只和函数名以及参数列表有关系,和函数的返回值类型无关!

  

  2. 重载函数的调用

  

总结:调用函数时,是通过函数名和参数列表共同确定的一个函数;

  3. 重载的好处 :让开发者需要记忆的函数名大大降低,提高开发效率;

  4. 练习

已知函数:

public static int add(int a,char b){}

下列那些函数与之重载?

a:public static void add(int b,char a){}: 不重载

b:public static int add1(int a,char b){}:不重载

c:public static void add(int a){}:重载

d:public static void add(char a,int b){}:重载

e:public static void add(){}:重载

四、数组的引入

  1. 定义: 数组就是容器,只能存放相同类型的数据。
  2. 格式    数据类型[] 数组名 = new 数据类型[数组的容量]

    3. 数组名,其实就是一个变量名(标识符)

五、数组的使用

  1. 数组元素的存取&数组的索引   

    a. 数组中存放的数据,就是数组的元素;

    所有数组中元素都有一个序号(索引、下标、角标……),都是从0开始,连续递增的(0,1,2,3,4……),最大值是数组容量减一;

    数组元素的存取,都是通过数组的索引完成的;

  

    数组元素的存放和取出,都是通过数组的索引实现的;

   

  2. 数组的遍历&数组的length属性

    数组的遍历:

   b. 数组的length属性:

    在生活中,容器的容量都是固定的;

    一个数组一旦建立,数组的容量也是确定不变的;

    要想知道数组的容量是多少,就要通过数组本身的一个属性获取:length属性;

    使用方法:数组名. length

    “.”:可以读作“的”;

    表示数组的长度;

  c. 数组的内存图解

    JAVA的内存组成

    

    

  d. 引用传递和按值传递

  

引用类型的变量进行传参,实际传递的是保存在变量中指向堆中空间的地址,这种传参情况叫做引用传递;

如果一个引用改变了空间中的值,对所有指向这个空间的引用都有影响;

基本类型的变量进行传参,实际传递的保存在变量中的常量值,这种情况叫做值传递;如果改变一个变量的值,对其他的变量没有影响;

七、数组的第二种定义格式 

  数组的第一种定义格式:

    数据类型[]     数组名 = new 数据类型[数组容量];

  如果提前已经知道数组中应该存放的数据,就可以使用数组的第二种定义格式,简化数组创建和赋值:

    数据类型[]     数组名 = new 数据类型[]{元素1,元素2,……};

  简写形式:

    数据类型[]     数组名 = {元素1,元素2,……};

数据类型后面的方括号中不能写数组的容量;

简写形式,只能和数组类型变量的声明写在一行;

    

    

  

JAVA基础--函数和数组03的更多相关文章

  1. Java 基础类型转换byte数组, byte数组转换基础类型

    Java 基础类型转换byte数组, byte数组转换基础类型 Java类型转换 java类对象转化为byte数组

  2. Java基础语法(7)-数组

    title: Java基础语法(7)-数组 blog: CSDN data: Java学习路线及视频 1.数组的概述 数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并 ...

  3. Java基础语法(8)-数组中的常见排序算法

    title: Java基础语法(8)-数组中的常见排序算法 blog: CSDN data: Java学习路线及视频 1.基本概念 排序: 是计算机程序设计中的一项重要操作,其功能是指一个数据元素集合 ...

  4. Java基础学习之数组基本属性和方法

    数组对于每一门编程语言都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同.Java语言中提供的数组是用来存储固定大小的同类型元素.你可以声明一个数组变量,如 int[100] 来代替直接 ...

  5. java基础5 (一维)数组和二维数组

    本文知识点(目录): 一维数组(一维数组的概念.优点.格式.定义.初始化.遍历.常见异常.内存分析以及常见操作(找最大值.选择排序.冒泡排序等等))    二维数组(二维数组的遍历.排序.查找.定义. ...

  6. Java基础语法(数组)

    第4天 Java基础语法 今日内容介绍 u 流程控制语句(switch) u 数组 第1章 流程控制语句 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句 ...

  7. Java基础复习之数组

    Java基础复习之:数组 简介 数组(Array):多个相同数据类型按照一定顺序排列的集合,并使用一个名字命名,通过编号的方式对这些数据进行统一管理 一维数组 一维数组的声明与初始化 int[] id ...

  8. Java基础_0306:数组的定义与使用

    数组 数组指的就是一组相关变量的集合.例如:如果说现在要想定义100个整型变量,按照传统的思路,可能这样定义: int i1,i2 ,... i100,一共写100个变量. 以上的形式的确可以满足技术 ...

  9. java基础学习总结——数组

    一.数组的基本概念 数组可以看成是多个相同类型数据组合,对这些数据的统一管理. 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量. 数组的元素可以是任何数据类型,包括基 ...

随机推荐

  1. BUPT复试专题—比较奇偶数(2010)

    https://www.nowcoder.com/practice/188472f474d5421cb8218b8ad561023b?tpId=67&tqId=29636&rp=0&a ...

  2. remove_if的问题

    #include<iostream> #include<list> #include<algorithm> #include"PRINT_ELEMENTS ...

  3. 提高系统性能——对SQL语句优化的思考

    软件在研发的过程中自始至终都在留意着系统的可扩展性.但与此同一时候也在关注着系统的性能,SQL语句作为系统性能的一环不容忽视.从今天開始结合开发的经验,谈一下我对SQL语句优化的理解和认知: 1.在联 ...

  4. BZOJ 3363 POJ 1985 Cow Marathon 树的直径

    题目大意:给出一棵树.求两点间的最长距离. 思路:裸地树的直径.两次BFS,第一次随便找一个点宽搜.然后用上次宽搜时最远的点在宽搜.得到的最长距离就是树的直径. CODE: #include < ...

  5. WPF MVVM UI分离之《交互与数据分离》 基础才是重中之重~delegate里的Invoke和BeginInvoke 将不确定变为确定系列~目录(“机器最能证明一切”) 爱上MVC3系列~全局异常处理与异常日志 基础才是重中之重~lock和monitor的区别 将不确定变成确定~我想监视我的对象,如果是某个值,就叫另一些方法自动运行 将不确定变成确定~LINQ DBML模型可以对

    WPF MVVM UI分离之<交互与数据分离>   在我们使用WPF过程中,不可避免并且超级喜欢使用MVVM框架. 那么,使用MVVM的出发点是视觉与业务逻辑分离,即UI与数据分离 诸如下 ...

  6. 统计nginx日志单IP访问请求数排名

    下面是我截取一段nginx日志 /Jan/::: +] "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gec ...

  7. Axure Base 07 元件使用思路的补充

    我们曾经对axure线框图基本元件进行过说明,现结合这我对这些元件的使用习惯,对部分元件的使用,再做一些补充. 1. 图片:可以编辑悬停.按下时候显示不同的图片,做图片的一些特殊效果. 2. 文本(l ...

  8. 在C/C++中使用VLD检测内存泄漏

    VLD地址:https://kinddragon.github.io/vld/ 若出现内存泄漏,VS输出窗口会有如下提示: 若要确定造成内存泄漏的代码位置,仅需进入工程属性->链接器->调 ...

  9. 设置Android Studio工程布局文件的默认布局

    每次创建新的工程后,布局文件的的布局总是ConstraintLayout,如何更改? 进入Android Studio安装目录,用文本编辑器打开文件plugins\android\lib\templa ...

  10. 中国vs美国制造业公司营业额大排名,看看哪些属于美国制造业的优势产业(中美旗鼓相当,而且还有本土制造的优势)

    当然,所谓的美国制造业,大量的东西现在 在中国制造和生产,但这里列举的,主要是卖实体工业产品为主的美国公司这个榜单里主要列出以工业产品销售为主的公司. 所以各大能源巨头虽然本身也是装备制造大户,但没被 ...