java中方法与构造方法的理解
初学者可能会搞晕或者是不理解,个人认为要理解并区分方法与构造方法 我们首先应该了解他们的作用,用作用做对比才能方便区分,接下来才是慢慢了解如何使用。
首先先简单了解一下大概作用
- 方法: 方法是语句的集合,它们在一起执行一个功能。实际上就相当于python或者c中的函数。
- 构造方法: 构造方法其实就是对类进行里面数据的初始化定义,它是方法中的一种(方法分为三种,接下来会说到),你可以有也可以没有。没有系统会自动给你生成一个无参的。重点也是需要提前强调的是它需要与类名相同。
之后继续说
- 方法: 一个类中的方法分为三类: 1)全局方法 2) 成员方法 3)构造方法
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Test{ private int xxx; public Test(int age){ //这是构造方法 xxxxxx } public void xxxxxx(int xxxx){ //这是成员方法 xxxxxx } public static int xxxxx(){ //这是全局方法,加了static ,成员方法就会变成全局方法 return xxxxx; } } |
三者区别:
- 成员方法必须构造类的实例化对象进行访问
- 全局方法可以用类直接访问
- 构造方法是实例化对象时进行初始化的
一般情况下,定义一个方法包含以下语法:
1 2 3 4 5 6 |
修饰符 返回值类型 方法名(参数类型 参数名){ ... 方法体 ... return 返回值; } |
- 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
- 返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
- 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
- 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
- 方法体:方法体包含具体的语句,定义该方法的功能。
- 构造方法
在创建对象的时候,对象成员可以由构造函数方法进行初始化。
也就是我们创造实例化的代码中 new后面跟的就是构造方法
1 |
Telphone phone=new Telphone(); |
等号右面
1 |
new Telphone() |
相当于是以Telphone类为模板,在堆空间里创建一个Telphone类对象
末尾的()代表着,在对象创建后,立即调用Telphone类的构造函数,对刚生成的对象进行初始化。
等号左面
1 |
Telphone phone |
创建命名了一个Telphone类引用变量phone
这里用一下imooc的图
接下来再说下有参和无参的构造方法的区别
有参就是你可以在创建对象时候赋值
1 2 3 |
public Test(String name){ mz=name; } |
Test为构造方法(函数)名 需要与类名相同
创建对象
1 |
Test name=new Test("xxxxx"); |
无参就需要这样
1 2 3 4 5 6 |
public Test(){ } public String mingzi(String name){ mz=name; return mz; } |
创建对象并赋值
1 2 |
Test nick=new Test(); nick.mingzi="ruilin"; |
总的来说,有参构造函数和无参构造函数都可以提前初始化一些值,但是有参可以在实例化时就进行赋值而无参不可以。这些赋值或者说初始化都是为了后面调用方法(函数)更加方便或者是去提供一些功能所必要的参数来防止报错,这也就是构造方法的作用。
最后再放一个有参的构造方法的例子便于理解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public class Testff { int num; public Testff(int n){ num = n; } public int numb(int a,int b){ System.out.println(a+"\n"+b+"\n"+num); int c=a+b+num; return c; } public static void main(String[] args) { Testff test=new Testff(11); System.out.println(test.num+"\n"+"---------"); System.out.println(test.numb(1,2)); } } |
output:
1 2 3 4 5 6 |
11 --------- 1 2 11 14 |
以上就是我对java中方法与构造方法的理解与区分,其中也简述了对有参与无参构造方法的一些理解,欢迎交流。
近期评论