变量
变量: 一个可变的量 , 就是说 这个东西里面的值 是我们可以改变的.
例如:
int a = 1;
int b = 2;
这样我们就创建了 两个int类型 的 变量 , 一个变量叫做 a , 一个变量叫做b ;
创建一个变量就是 : 数据类型 + 变量名 ;
这里的数据类型可以看这篇 基本的数据类型-优快云博客 简单了解一下
(总结在一起就是:我们创建一个int类型的变量 ,变量名字是a, 并且这个变量的值是 1)
用System.out.println() 把a和b输出
int a = 1;
int b = 2;
System.out.println(a);
System.out.println(b);
就能够看到idea 下面输出了 1 和 2
(因为我们创建a的值是1, b的值是2,所以也就输出 1和 2)
既然是变量,我们就可以给a和b其他的值 ;
int a = 1;
int b = 2;
a = 5 ;
b = 6 ;
System.out.println(a);
System.out.println(b);
这里我们又把5赋值给a , 把6 赋值b , 重新输出 看下会发生什么.
输出 了 5 和 6 , 说明我们把 a原来的值1 ,改成了 5 ; 把b原来的值2, 改成了6 ;
简单理解了变量下面我们说说方法 .
方法
什么是方法?
如果是计算机专业的同学,学过C语言的话可能容易理解, Java里的方法就和 C 里面的函数 类似.
如果没学过也不要紧, 咱们慢慢理解.
先看方法的组成部分.
方法的组成部分
- 方法名
- 方法的参数列表
- 方法体
- 方法的返回类型
方法名: 就和变量名的差不多,就是 方法的名字
方法的参数列表: 我们使用方法 ,一般要给方法 一些参数, 这些参数是什么类型的,有多少个?就要和方法的参数列表相匹配;
方法体: 方法体就是 我们这个方法,要做什么操作,这些操作就写在方法体里面;
方法的返回类型: 我们创建一个方法, 一般来说方法 会返回一个值 , 这个值的数据类型 ,就是要和我们方法的返回类型一样 ;
例如:我们要 做一个 "荤菜" , 这道菜叫 "青椒炒肉" , 首先我们要有 "原料" , 例如 "青椒,猪肉... 等等";
- 这里我们的方法名: 就是"青椒炒肉" , 我们调用这个方法返回一盘青椒炒肉.
- 参数列表: 参数列表就是"青椒和猪肉", 我们把青椒和猪肉,给这个方法,作为方法的"原料".
- 方法体: 方法体就是 "我们在锅中翻炒青椒猪肉", 就是我们"做菜的过程",当然最后做的怎么样就看个人技术了.
- 方法的返回类型: 我们这个方法 的 返回类型是 "荤菜", 所有返回一个青椒炒肉,刚好符合.
不开玩笑了,我们写一个方法出来看看.
static int func(int a , int b){
int sum = a + b ;
return sum ;
}
func(就代替我们"青椒炒肉" 方法的名字 , ) ; int a , int b 就代替我们 的 "原料"(青椒和猪肉), 最后面返回的 sum 就是我们的"青椒炒肉";
这个方法的作用: 用来求 两个 数据 的 和 ;
例如:
(x=4 , y=5,然后我们把x和y作为参数传给func)
此刻在func方法里
(最后c=9,相当于c=(x+y) )
怎么写一个方法?
方法的格式:
方法例子:
方法名 : func1 ,参数列表里什么都没有 , 就是没有参数(不需要参数), 返回值类型是void(代表该没有返回值)
void func1(){
}
//方法名 : func2 ,参数列表里有一个int a, 没有返回值
void func2(int a){
}
//方法名: func3 , 参数列表里有 int a , int b , 没有返回值
void func3(int a, int b){
}
// 方法名 : func4 , 没有参数 , 返回类型是 int , 返回值是 1 ;
int func4(){
return 1 ;
}
// 方法名: func5 , 参数有 int a , int b , 返回类型是 int
int func5(int a , int b){
int sum = a + b ;
return sum ;
}
注意:
- 如果方法里不想有 返回值 , 返回值类型就写 void ,就不需要 return ;
- 如果方法里有 返回类型 , 那么就需要 return 返回一个值 ;
- return :用来返回 值 , 执行了 return 就不会执行 方法里 return 后面的代码 ;
怎么使用一个方法
格式: 方法名 ( 参数 ); (调用一个方法 ,就使用方法名+()小括号, 小括号里是我们要给方法的参数)
现阶段先在main方法里调用这些方法,注意 每个方法前面都加一个 static
public class Test1 {
public static void main(String[] args) {
int a = 1 ;
//调用func1方法
func1(a);
//调用func2方法
func2() ;
}
static void func1(int b){
System.out.println("使用func方法");
}
static void func2(){
System.out.println("使用func2方法");
}
}
1.在main方法里调用 func1()方法 , 因为func1()方法里的 参数列表里 有一个 int类型的参数 , 那么我们调用这个func1()方法, 就要在小括号里传一个 同样是int 类型的数据;
2.func2() 方法里的参数列表里什么都没有, 所以我们调用func2()方法时,不需要传参数,()小括号里什么都不用传;
关于方法,有一个经典的问题 :
我在方法里修改 a, 让a=4 , 然后我调用 这个func方法 , 最后 我打印输出 a的值 ,
问 : 打印输出 a 的值 会是多少 ? 是 1 还是 4
(最后a的值会因为func方法改变吗?)
形参和实参
形参: 形参就是我们参数列表里的这些, ()小括号里的这些就是形参 ;
(func() 方法里的形参-> int b)
实参: 实参就是我们调用方法时传给方法的参数;
public class Test1 {
public static void main(String[] args) {
int a = 1 ;
//调用func1方法
func1(a);
//调用func2方法
func2() ;
}
static void func1(int b){
System.out.println("使用func方法");
}
static void func2(){
System.out.println("使用func2方法");
}
}
(调用func1方法,我们就传了个a,给func1()方法,这个变量a,就是我们的实参)
形参和实参的关系:
在我们调用方法,传给方法的参数(实参),其实在方法里会将我们传的参数复制一份;
public static void main(String[] args) {
int a = 1 ;
func1(a);
}
static void func1(int a){
a = 4 ;
}
在main方法里有一个int a 变量 , func()方法里也有一个int a 在参数列表中 ;
我们调用func1方法,把a 作为参数传给func1(), func1会把我们所传的a的值复制过来 , 给func1里的a
(此时func1里的变量a的值也等于1)
在func1()里, 我们让a=4 ;
(这时候func1里的a的值为4)
此时我们在一起看 main里的a 和 func1里的a;
(main里的a,并没有因为func1里的a变成4,而收到影响)