Java基础知识(2)

1.函数的概念
为什么要有循环?
将重复性的代码经行封装,避免代码冗余
a.什么是函数
函数就是定义在类中的具有特定功能的一段独立小程序,并且能被多次使用
如何定义一个功能呢?
。应该是一个封闭的空间,那就需要使用大括号将其封装
。需要给这个区间起一个名字,以后通过这个名字来调用这个区间
。这个区间需要有参与运算的数据
。需要定义该功能的结果类型
在这里插入图片描述
b.函数的定义格式
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…){
执行语句;
return返回值;//return关键字是用于结束该功能,并将后面的具结果返回给调用者。
//必须有return语句。
}
在这里插入图片描述修饰符:public protected 默认 private
函数类型:ststic静态函数 Synchronized同步函数 native本地函数 默认 成员函数
以返回值类型来说:可以分别为四种情况
a.有参有反:正常情况
b.有参无反:
c.无参有反:函数内部一般操作的是全局变量
d.无参无反:
对于无返回值的函数而言 不能输出 不能赋值 不能参与运算 只能调用
对于有返回值的函数而言,以上操作都可以,也可以直接调用。
注意:函数的返回值类型如果是void时,return语句可以省略不写;void表示的时没有返回值的情况
c.如何定义函数
函数就是一个功能,功能就需要两部分
1.函数运行完的结果是什么;
2.函数运行时有未知参数吗?
定义函数时,时刻把握如下两个明确,基本就可以完成函数的定义:
明确一:这个功能的结果是什么?其实就是明确返回值类型
明确二:这个功能需要未知内容是什么?其实就是明确参数列表
d.函数的执行过程
class demo01{
public static void main(String[] args){ //1.先进入到主函数里
int s= add(3,2); //2.调用add函数,将计算结果赋值给s
System.out.println(s); //5.输出打印s
}
public static int add(int num1,int num2){
int s =num1+num2; //3.计算数字一和数字二的和,赋值给S
return s; //4.返回s的值
}
}
在这里插入图片描述
2.函数的重载
a.重载的引用
两个数相加,需要一个函数名字sum,三个数相加需要一个函数名sum2,那如果有100个数相加,是不是需要sum99了,那是不是在调用函数的时候还要去记住那个函数名对应多少个参数?这很显然是不可能的。Java为我们提供了重载的这个功能,使用重载就可以解决这个问题。
b.重载的概念
在一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可,这时就形成了重载。重载和返回值类型无关
c.如何区分重载?
主要看参数类型的排列组合(顺序,个数)
add int int char
add char int int
add int int
在这里插入图片描述3.Math工具类
在这里插入图片描述4.如何写一些关于函数的代码
自定向下的编写方式
5.String类
// StringIndexOutOfBoundsException 角标越界异常
a.功能
charAt(int index) //查讯指定索引处的char值
compareTo() //按照字典的顺序,比较两个字符串的前后
在这里插入图片描述
// <0 s1在s2前面 ==0 s1和s2相等 >0 s1在s2后
compareToIgnoreCase(String str) //按字典顺序比较两个字符串,不考虑大小写。
concat(String str) //将指定字符串连接到此字符串的结尾
contains(CharSequence s) //当且仅当此字符串包含指定的char值序列时,返回true
endswith(String suffix) //测试此字符串是否以指定的后缀结束
startswith(String syffix)//测试此字符串是否以指定的前缀开始
在这里插入图片描述
//只要想改字符串本身的操作 都不是直接在原先字符串身上做改变的
//而是复制一份
//字符串是不可变对象

return 直接返回当前函数
6.数组
a.数组的概念:数组是同一个类型数据的集合,即能存放多个相同类型的数据的容器
b.数组的定义方式:数组是存放放多个数据的容器,Java中需要使用new关键字来创建容器,在创建容器时也要明确容器的大小,及容器中存放数据的个数
数组一旦创建出来,其长度不可改变
数组中的元素有默认初始化
元素类型[ ] 数组名 = new 元素类型[元素个数或数组长度];
数据类型[ ] 数组名 = new 数据类型[ ]{元素1,元素2,元素3};
数据类型[ ] 数组名 = {元素1,元素2,元素3};
int[] arr = new int[3]; //通过new关键字创建一个长度为3,元素类型时int的数组实体。
c.数组的好处
数组可以存储多个数据,而且可以对数据经行编号,从0开始,操作元素完成可以听过编号(索引)完成。
int[ ] arr = new int[3];
arr[0] = 3; //给数组编号为0 的空间中存放int类型的常量值3
在这里插入图片描述
d.数组的常见问题
数组角标越界异常
ArrayIndexOutOfBoundsException:访问到了数组不存在的索引时,会发生该异常
空指针异常
NullPointerException:当使用没有任何实体指向的引用变量操作实体时,运行会发生该异常
e.数组内存图解
class Demo07{
public static void main(String[] args){
int[] arr = new int[5];
System.out.println(arr[0]);
}
}
在这里插入图片描述字符串String的长度 legth( )是一个函数
数组[ ] 的长度 length 是一个属性/变量

  • 二维数组
    a. 定义方式
  • int[ ][ ] a = new int[row][col];
  • int[ ][ ] a = new int[ ][ ]{{1,2,3},{4,5,6},{1,1,1}};
    b.
  • 二维数组本质上还是一个一维数组
  • 只不过其数组元素是另外一个一维数组
  • 二维数组有特殊存在(本身不是行列式)
    c.循环方式
    for(int i=0;i<a.length;i++){
    for(int j=0;j<a[i].length;j++){
    }
    }
    例题分享
    //如何查找数组当中的最大值和最小值

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值