4.Java(方法与数组)

方法

1.什么是方法???
答:方法就是完成特定功能的代码块
在很多语言中都有函数的定义,但是在咱们JAVA语言中,我们将其称之为方法。
2.方法的格式
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2 …){
方法体;
return 返回值;
}
3.方法的格式详细说明
(1): 修饰符 比较多,后面会详细介绍。目前使用 public static
(2): 返回值类型 用于限定返回值的数据类型
(3): 方法名 就是一个名称,它的存在是为了方便我们调用方法
(4): 参数类型 限定调用方法时传入参数的数据类型
(5): 参数名 是一个变量,接收调用方法时传入的参数
这个参数其实有一个专业的名词,被称之为形式参数,它的作用是用来接收实际参数的.
(6): 方法体 完成功能的代码
(7): return 结束方法以及返回方法指定类型的值
(8): 返回值 就是功能的结果,由return带回,带回给调用者

class  Demo{
		public static void main(String[] args) {
			
			send();//调用方法			
			}
			
			
  public static void send(){
	  System.out.println("发射");
	}
}

方法的注意事项

1.放法定义在类中,方法和方法是平级关系,不能嵌套定义。

2.方法不调用不执行,可以重复调用。

3.调用方法时,如果方法有形参,那你调用时,必须传入实参,实体的数据类型和个数都要和形参保持一致。

4.当你调用方法时,如果该方法有返回值,你就可以接收该方法返回的结果,方法,返回什么数据类型,你就用什么数据类型来收

定义方法时,需要明确的俩点

1.方法要不要形参,如果要,要几个,数据类型是啥;

2.方法要不要明确返回值,要,返回什么类

练习:键盘录入的数字,打出乘法表
import java.util.Scanner;
class FfJjtable{
    public static void main(String[]args){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入第一个数字");
        int x = sc.nextInt();
		JjcfbTable(x);
     //System.out.println("请输入第二个数字");  
  
        
    }
        
     public static void JjcfbTable(int n){   	
        for(int i=1;i<=n;i++){
			for(int j=1;j<=i;j++){
				System.out.print(j+"*"+i+"="+(j*i)+"\t");
			}
			System.out.println();
		}
		
	}
        
    }

方法重载

允许一个类中,可以定义多个同名方法,只要他们的形参个数或形参类型不同即可,跟返回值没有关系,不要有返回值区分

class A {
	public static void main(String[] args) {

int sum1=add(3,6);
int sum2=add1(4,6,9);
int sum3=add2(5,8,38,5);
		System.out.println("Hello World!"+sum1);
				System.out.println("Hello World!"+sum2);
						System.out.println("Hello World!"+sum3);
	}



	public static int add(int a,int b){
	return a+b;
	}
	public static int add1(int a,int b,int c){
	return a+b+c;
	}
	public static int add2(int a,int b,int c,int d){
	return a+b+c+d;
	}
}

数组(一维数组)

数组概念

​ 数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
​ 数组既可以存储基本数据类型,也可以存储引用数据类型(后面讲解)。

数组定义格式

	格式1: 数据类型[] 数组名;
	格式2: 数据类型   数组名[];
举例:
	int[] a; 	定义了一个int类型的数组a;
	int a[];	定义了一个int类型的a数组;
	推荐使用第一种定义方式。

什么是数组的初始化

​ Java中的数组必须先初始化,然后才能使用。
​ 所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。

初始化的分类:

​ a:动态初始化: 只指定长度,由系统给出初始化值
​ b:静态初始化: 给出初始化值,由系统决定长度
​ 注意事项: 这两种方式,只能使用一种,不能进行动静结合

动态初始化的格式:

​ 数据类型[] 数组名 = new 数据类型[数组长度];
​ 数组长度其实就是数组中元素的个数。
​ 举例: int[] arr = new int[3]; 定义了一个int类型的数组arr,这个数组可以存放3个int类型的值。

Java中的内存分配以及栈和堆的区别

Java虚拟机在执行Java程序的过程中会把它管理的内存划分成若干个不同的数据区域

A:栈: 存放的是局部变量
局部变量:在方法定义中或者方法声明上的变量都是局部变量。
B:堆: 存放的是所有new出来的东西
特点:
a: 每一个new出来的东西都会为其分配一个地址值。
b: 每一个变量都有一个默认的值
byte,short,int,long – 0
float,double – 0.0
char – ‘\u0000’
boolean – false
引用数据类型 – null
c: 使用完毕就变成了垃圾,等待垃圾回收器对其回收
C:方法区:(面向对象部分讲解)
D:本地方法区:(和系统相关)
E:寄存器:(cpu使用)

动态数组

class A {
	public static void main(String[] args) {
	//数组:可以看作一个容器,可以存储多个数据类型一致的元素
	//为了方便存储多个元素
	//数据类型[ ] 数组名
	
	//动态初始化:由我们规定数组长度
	int [ ] arr=new int[3];	
	//重新赋值
	arr[0]=12;
	arr[1]=23;
	arr[2]=34;

	int a=arr[0];
	int b=arr[1];
	int c=arr[2];



		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
	}
}

静态数组

class A {
	public static void main(String[] args) {
	//数组的静态初始化:由我们为数组元素赋值,由系统计算长度

		int [ ] arr=new int[ ]{20,34,58,58};
			
		arr[3]=500;
		
		int a=arr[0];
		int b=arr[1];	
		int c=arr[2];	
		int d=arr[3];

		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);
	
		int [ ] arr2={20,34,58,58};
		System.out.println(arr2[3]);

	}
}

数组遍历

class A {
	public static void main(String[] args){
	//数组遍历
//正向遍历数组
	int[ ] arr={34,56,78,89};
		/*for(int i=0;i<arr.length;i++){
	System.out.println(arr[i]);
	}*/

//反向遍历数组
/*for(int i=arr.length-1;i>=0;i--){
	System.out.println(arr[i]);
}*/
	wor(arr);
	wors(arr);		
	}


public static void wor(int[ ] arr){
	for(int i=0;i<arr.length;i++){
	System.out.println(arr[i]);
	}

}
public static void wors(int[ ] arr){
	for(int i=arr.length-1;i>=0;i--){
	System.out.println(arr[i]);
	}
}


}

异常

class B {
	public static void main(String[] args) {
//数组有一个内置的属性length可以获取数组的长度

int[ ] arr={20,39,56,87};
//获取长度
int len=arr.length;
		System.out.println("数组长度"+len);
	//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 5
	//数组角标越界异常
	//Java中数组的长度是不可变的,数组一旦定义,长度就固定了。

	//空指针异常,针对所有引用数据类型,都可以出现这个异常
	
arr=null;
//用完之后人为置null,有利于垃圾回收器,尽快回收数组对象


	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值