赞
踩
2020年3月27日
来自某非常非常菜鸡的Java初学者dxb
**本文只涉及静态方法与实例方法初学者的理解,不会有任何很高端的代码。**所以,仅试用初学者。
由于本菜鸡接触编程至今只有40多天,所以文章必定漏洞百出,欢迎大佬指正,帮助我这个菜鸡理解。
关键字
static
相当于是将一些操作给打包起来,可以理解为我们搞了一个静态方法(一个盒子),这个方法里面存了一些代码(把代码装进盒子里),在想要用这个方法里面存的代码的时候,只需要打出这个方法就可以了(方法就代表了这些代码),不需要把这么多代码再敲一遍。(虽然复制粘贴也很方便,但是优雅一点不香吗)
public static void fangfa(){
//public 公开的,谁都能用这个方法
//static 是静态的意思,静态是啥,我也不知道
//void 词典查出来是空的意思,这里代表没有返回值
//蓝色的fangfa是我们给这个方法取得名字
//这里是我们想存进来的代码
System.out.println("dxb is a vegetable chicken");
}
//现在我们来使用一下这个方法
public class dxb{
public static void main(String[] args) {
for(int i=0;i<5;i++){
fangfa();//就是这个地方啦,这一行相当于敲了我们方法里面存的代码
}
}
}
//以上两个代码块中的代码等同于
public class dxb {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println("dxb is a vegetable chicken");
}
}
}
//因为我只在方法中写了一行代码,但是想象一下,如果我的方法里面有很多行代码,并且需要反复使用的时候,静态方法就会变得很香了。
注意,静态方法如果有非空的返回值时,是可以将这个返回值赋值给其他的变量的(高级的盒子,可以从盒子里面拿东西出来)。
public class dxb {
public static int fangfa() {
//这里我们返回一个整型数
//这里还是是我们想存进来的代码
int a = 5;
return a;
}
//方法写完了,现在我们在main方法(程序的入口)来执行一下
public static void main(String[] args) {
int b;
b = fangfa();//这一行的意思有两个,第一是我执行了这个方法里面的代码,第二是我把这个方法的返回值赋给了b,当然你要是觉得不需要赋值,你也可以不写这个b = 程序一样照常运行
System.out.println(b);
}
}
如果不需要,也可以不赋值出去,不会有什么影响的(盒子里有东西,但是我也可以不用这个东西)。
方法(盒子)里也可能不会有返回值(返回值为空void)(盒子里面什么都拿不出来,但是盒子还是能实现一些功能,比如打印)
什么叫实例呢?什么是构造呢?我也不知道。
想要创建一个实例方法,我们先要定义一个类(比如人类)
想要调用这个实例方法,我们必须要创建一个实例(比如本菜鸡)
本菜鸡也是人,所以,实例是类中的一个具体的东西。当然人可以有很多,所以实例也可以有很多
public class dxb { //首先我们来定义一个类 public static class Human { //这里为什么要加static,最后再说 //这个类(人类)会有一些特征,比如人有眼睛,鼻子,我们先定义他们的数量 int numberEye; int numberNose; //定义好了以后,我们可以设置他们的数量(人的眼睛都是2个,但是不要在意这些细节) //怎么设置呢,我们需要用到方法,什么方法呢?实例方法set public void setNumberEye(int i) { //这里我们把一个参数传递进来了,怎么传递呢,在调用方法的时候传递 numberEye = i; } //然后是鼻子 public void setNumberNose(int i) { numberNose = i; } //只是设置了好像不知道设置到哪去了,可以用一个get方法打印出来 public void getNumberEye() { System.out.println("eye " + numberEye); } public void getNumberNose() { System.out.println("nose " + numberNose); } } //okk,方法写好了,怎么用呢 public static void main(String[] args) { //这里是main方法的内部,程序的入口 //我们先得创建实例(比如本菜鸡),然后才能设置本菜鸡的眼睛鼻子个数(你们开心就好) //怎么创建一个菜鸡dxb呢 Human caijidxb = new Human(); Human dltql = new Human(); //当然你也可以创建一个大佬 //然后,我们来设置这个菜鸡眼睛和鼻子的个数吧(例子不太恰当,不好意思) //下面括号里面的是传进方法的参数,可以写一个Scanner自己定,这里我们直接在代码里面规定好 caijidxb.setNumberEye(2); caijidxb.setNumberNose(1); //设置好了,现在我们调用get方法看看 caijidxb.getNumberEye(); caijidxb.getNumberNose(); } }
构造方法是什么呢?
我们在创建一个class类(比如人类)的时候,会自动生成一个和类同名的方法,这个方法就叫构造方法,当然,代码我们看不见,不代表不存在。
如果我们不进行任何操作,这个和类同名的构造方法是不会发挥任何作用的。我们在创建一个实例变量的时候,可以说就是在进行这个构造方法的调用。因为现在我们没有写构造方法,构造方法默认是没有内容的,所以也不会有什么特殊的功能。
我们可以写一个构造方法,什么时候写呢?当我们在创建一个实例变量(比如本菜鸡)的时候,如果想在创建的时候就实现一些功能,那把我们想实现的功能写在构造方法里面就可以了。
需要特别注意的是,构造方法是没有返回值的,连空的返回值void都没有。但这并不影响它实现一些功能。
1.最后一个代码块的开头,我在class前面加了一个static,为什么要加呢?如果我们在不同的.java文件里面写代码,是不需要加static的,但是这里必须要加上,不然会报错,程序无法运行。如果想深入了解,可以参考
https://zhuanlan.zhihu.com/p/70110497
2.这是我第一次写文章,也是第一次在网络上发出自己的声音,难免有不足之处。如内容有不适之处,欢迎联系作者指正。
3.如果你能看到这里,万分感谢。
要加static的,但是这里必须要加上,不然会报错,程序无法运行。如果想深入了解,可以参考
https://zhuanlan.zhihu.com/p/70110497
2.这是我第一次写文章,也是第一次在网络上发出自己的声音,难免有不足之处。如内容有不适之处,欢迎联系作者指正。
3.如果你能看到这里,万分感谢。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。