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. Prism for Xamarin.Forms

    一.使用环境 OS:Win 10 16273 VS:VS2017- 15.3.4 Xamarin:4.6.3.4,nuget:2.4 Android Emulator:Visual Studio fo ...

  2. CSS3弹性盒模型 display:box

    刚开始做网页时就有一个困惑,为什么display:block只能垂直排列,如果要水平排列就要使用float:left等方式.这种方法最难受的当然是当子元素的数量改变时,需要去修改子元素的宽度使重新适应 ...

  3. RMA退货流程解决方案

    RMA退货流程解决方案 1.概述 在高科技制造业中有效地对产品退货进行控制和跟踪有很大的意义.对于一个产品成本从几元到几十万元的工业,管理退货流程的能力至关重要,缺乏跟踪和控制有可能导致上百万元的损失 ...

  4. 转: 【Java并发编程】之十四:图文讲述同步的另一个重要功能:内存可见性

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/17288243 加锁(synchronized同步)的功能不仅仅局限于互斥行为,同时还存在另 ...

  5. 英语app分析

    Andorid 版本 第一部分 调研, 评测 搜索了一下必应跑出来的是微软必应,在印象中微软的产品都是很可靠地.安装之后对它的 排版字体图片等不是很喜欢,感觉有道词典会更亲切一点. 必应       ...

  6. 【1414软工助教】团队作业9——测试与发布(Beta版本) 得分榜

    题目 团队作业9--测试与发布(Beta版本) 往期成绩 个人作业1:四则运算控制台 结对项目1:GUI 个人作业2:案例分析 结对项目2:单元测试 团队作业1:团队展示 团队作业2:需求分析& ...

  7. 201521123054 《Java程序设计》第7周学习总结

    1. 本周学习总结 2. 书面作业 ArrayList代码分析 1.1 解释ArrayList的contains源代码 //contains()方法 public boolean contains(O ...

  8. 201521123037 《Java程序设计》第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 1.1 建立数据库,将自己的姓名.学号作为一条记录插入.(截图, ...

  9. 《JAVA程序设计》第12周学习总结

    1. 本章学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. InputStream和OutputStream为所有字节流的父类 通过操作流中的字节可处理各种不同类型的数据 ...

  10. 201521123057 《Java程序设计》第9周学习总结

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