Java基础语法(下篇)

内容概要:

         (1)函数的定义

         (2)函数的特点

         (3)函数的应用

         (4)函数的重载 

              (5)数组的定义

         (6)数组的结构

            (7)数组的操作

            (8)二维数组

1.函数的定义 

 什么是函数? 

       函 数:

为了提高代码的复用性,可以将其定义成一个单独功能,该功能的体现就是java中的函数。函数就是体现之一。

       函数就是定义在类中的具有特定功能的一段独立小程序。 

       函数也称为方法

       函数的格式:

修饰符[返回值类型]函数名(参数类型形式参数1,参数类型形式参数2,)

          {

                      执行语句;

                      return 返回值;

          }

返回值类型:函数运行后的结果的数据类型。

       参数类型:   是形式参数的数据类型。

       形式参数:   是一个变量,用于存储调用函数时传递给函数的实际参数。

       实际参数:   传递给形式参数的具体数值。

       return:        用于结束函数。 

       返回值:      该值会返回给调用者。

2.函数的特点

     (1) 定义函数可以将功能代码进行封装

 (2)便于对该功能进行复用

 (3) 函数只有被调用才会被执行,函数的出现提高了代码的复用性

 (4)对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该 函数中的return语句如果在最后一行可

以省略不写。

注意:

      • 函数中只能调用函数,不可以在函数内部定义函数。

      • 定义函数时,函数的结果应该返回给调用者,交由调用者处

        理。

3 函数的应用

 

两个明确

          •  明确要定义的功能最后的结果是什么?

          •  明确在定义该功能的过程中,是否需要未知内容参与运算

  示例:

          •  需求:定义一个功能,可以实现两个整数的加法运算。

          •  分析:

          • 该功能的运算结果是什么?两个数的和,也是一个整数(int)

          • 在实现该功能的过程中是否有未知内容参与运算?加数和被加数是不确

             定的。(两个参数int,int)

          • 代码:

            int getSum(int x,int y)

            {

                     return x+y;

            }

代码示例

class FunctionDemo
{ public static void main(String[] args)
{
/*
int x = 4;
System.out.println(x*3+5); x = 6; System.out.println(x*3+5); int y = 4*3+5;
int z = 6*3+5;
*/
int x = getResult(4);
System.out.println("x="+x);
int y = getResult(6); }
/*
发现以上的运算,因为获取不同数据的运算结果,代码出现了重复。
为了提高代码的复用性。对代码进行抽取。
将这个部分定义成一个独立的功能。方便与日后使用。
java中对功能的定义是通过函数的形式来体现的。 需要定义功能,完成一个整数的*3+5的运算, 1,先明确函数定义的格式。 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,)
{
执行语句;
return 返回值;
} 当函数运算后,有具体的返回值时,这是返回值类型用一个特殊的关键字来标识。
该关键字就是void。void:代表的是函数没有具体返回值的情况。
当函数的返回值类型是void时,函数中的return语句可以省略不写。
*/
public static void getResult(int num)
{
System.out.println(num * 3 + 5);
return;//可以省略
} }

4 函数的重载(overload)

重载的概念

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

 重载的特点: 

        与返回值类型无关,只看参数列表。

 重载的好处:

       方便于阅读,优化了程序设计。

 重载示例:

      //返回两个整数的和

  int add(int x,int y){return x+y;}

     //返回三个整数的和

  int add(int x,int y,int z){return x+y+z;}

     //返回两个小数的和 

  double add(double x,double y){return x+y;}

练习:

/*

void show(int a,char b,double c){}

a.
void show(int x,char y,double z){}//没有,因为和原函数一样。 b.
int show(int a,double c,char b){}//重载,因为参数类型不同。注意:重载和返回值类型没关系。
c. void show(int a,double c,char b){}//重载,因为参数类型不同。注意:重载和返回值类型没关系。 d.
boolean show(int c,char b){}//重载了,因为参数个数不同。 e.
void show(double c){}//重载了,因为参数个数不同。 f.
double show(int x,char y,double z){}//没有,这个函数不可以和给定函数同时存在与一个类中。 */

数组的定义:

概念

       同一种类型数据的集合。其实数组就是一个容器。

数组的好处 ?

      答:可以自动给数组中的元素从0开始编号,方便操作这些元素。

格式1: 

     元素类型[] 数组名 = new 元素类型[元素个数或数组长度];

     示例:int[] arr = new int[5];

格式2: 

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

    int[] arr = new int[]{3,5,1,7};

    int[] arr = {3,5,1,7};

数组的内存结构:

二分查找法。必须有前提:数组中的元素要有序。

java分了5片内存。

1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。

栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 );

      只要数据运算完成所在的区域结束,该数据就会被释放。

堆:用于存储数组和对象,也就是实体。啥是实体啊?就是用于封装多个数据的。

     1:每一个实体都有内存首地址值。

2:堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。

3. 垃圾回收机制。

3 数组操作常见问题

数组脚标越界异常(ArrayIndexOutOfBoundsException)

int[] arr = new int[2];

       System.out.println(arr[3]);

访问到了数组中的不存在的脚标时发生。

空指针异常(NullPointerException)

int[] arr = null;

      System.out.println(arr[0]);

      arr引用没有指向实体,却在操作实体中的元素时。

数组常见操作

(1)获取最值(最大值,最小值)

  (2)排序(选择排序,冒泡排序)

  (3)折半查找(二分查找) 

数组中的数组  二维数组[][]

       格式1:int[][] arr = new int[3][2];

       定义了名称为arr的二维数组

       二维数组中有3个一维数组 ,每一个一维数组中有2个元素 

       一维数组的名称分别为arr[0], arr[1], arr[2] 

       给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;

格式2:int[][] arr = new int[3][];

二维数组中有3个一维数组

       每个一维数组都是默认初始化值null

       可以对这个三个一维数组分别进行初始化

       arr[0] = new int[3];

       arr[1] = new int[1]; 

       arr[2] = new int[2];

格式3:int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};

      定义一个名称为arr的二维数组

      二维数组中的有三个一维数组

  每一个一维数组中具体元素也都已初始化

  第一个一维数组arr[0] = {3,8,2};

  第二个一维数组arr[1] = {2,7};

  第三个一维数组arr[2] = {9,0,1,6};

  第三个一维数组的长度表示方式:arr[2].length;

练习:获取arr数组中所有元素的和。使用for的嵌套循环即可。

注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。

常见的数组操作:赋值,查找,排序。元素换位置,进制转换需牢记在心

Java基础语法(下篇)的更多相关文章

  1. java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...

  2. Java基础语法(上篇)

                     Java基础语法(上篇) 知识概要: (1)关键字的表示与规范       (2)标示符              (3)注释                (4 ...

  3. java——基础语法

    java基础语法 1.关键字:java赋予特殊含义的单词. 2.标识符:程序中开发人员自定义的名词,例如:类名,函数名,变量名(注意事项:①不能以阿拉伯数字开头②不能采用关键字). 3.常量:固定的数 ...

  4. java基础语法(二)--单列模式

    java基础语法(二)--单列模式 /** * 功能:单列模式 * @author Administrator * */ public class SingletonTest { public sta ...

  5. java基础语法(一)

    java基础语法(一) 1.类是一种抽象的概念,对象是类的一种具体表示形式,是具体的概念.先有类,然后由类来生成 对象(Object).对象又叫做实例(Instance). 2.类由两大部分构成:属性 ...

  6. Java基础语法入门01

    Java基础语法入门01 学习java你要先进行去了解JDK,JRE,JVM JDK Java开发工具包 JRE Java语言开发的运行环境 JVM Java虚拟机,用于Java语言的跨平台所用. 当 ...

  7. Java匹马行天下之JavaSE核心技术——Java基础语法

    Java基础语法 一.   认识Java 1. Java 简介 java 是一种高级的面向对象的程序设计语言,使用Java语言编写的程序时跨平台的.从pc到手机,都有Java开发的程序和游戏,Java ...

  8. JAVA基础语法——标识符、修饰符、关键字(个人整理总结)

    JAVA基础语法——标识符.修饰符.关键字 一 . 标识符 1.1    什么是标识符 就是程序员在定义java程序时,自定义的一些名字,例如helloworld 程序里关键字class 后跟的Dem ...

  9. JavaSE入门学习7:Java基础语法之语句(下)

    继续接着Java基础语法来:JavaSE入门学习5:Java基础语法(一)和JavaSE入门学习6:Java基础语法(二). 语句 Java经常使用的3种循环:while.do...while,for ...

随机推荐

  1. CSS背景效果

    前面的话 本文将详细介绍CSS背景效果 条纹背景 [双条纹背景] background:linear-gradient(#fb3 50%, #58a 50%); background-size: 10 ...

  2. Assert中的静态方法

    junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类. 1.assertTrue/False([String message,]boolean cond ...

  3. 201521123083 《Java程序设计》第10周学习总结

    1. 本周学习总结 2. 书面作业 本次PTA作业题集异常,多线程 1.finally题目4-2 1.1 截图你的提交结果(出现学号) 1.2 4-2中finally中捕获异常需要注意什么? 一个tr ...

  4. 英语APP体验

    第一部分 1.下载并使用,描述最简单直观的个人第一次上手体验. 感觉不是很好用,可能是个人习惯吧,之前用的都是扇贝单词和有道词典,所以不是特别顺手. 2.找出几个功能性的比较严重的 bug 在口语挑战 ...

  5. [2017BUAA软工助教]评论汇总

    一 邹欣 周筠 飞龙 二 学校 课程 教师 助教1 助教2 助教3 福州 软件工程1715K 柯逍 谢涛 软件工程1715Z 张栋 刘乾 汪培侨 软件工程1715W 汪璟玢 曾逸群 卞倩虹 李娟 集美 ...

  6. 【Alpha】——Sixth Scrum Meeting

    一.今日站立式会议照片 二.每个人的工作 成员 昨天已完成的工作 今天计划完成的工作 李永豪 对统计出现的问题进一步完善 学习将项目做成APK 郑靖涛 完善报表设计 协助设计账目一览表板块 杨海亮 测 ...

  7. C语言中变量的作用域和生命周期

    变量的类型: 1. 局部变量和全局变量 局部变量也称为内部变量. 局部变量是在函数内作定义说明的.其作用域仅限于函数内, 离开该函数后再 使用这种变量是非法的. 全局变量也称为外部变量,它是在函数外部 ...

  8. 201521123008《Java程序设计》第五周实验总结

    1.本章学习总结 2.书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 不能.Sy ...

  9. 201521123059 《Java程序设计》第十周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 多线程的相关理解图: 2. 书面作业 本次PTA作业题集异常.多线程 Q1:finally 题目4-2 1. ...

  10. 201521123085 《java程序设计》 第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前 ...