java中构造方法和普通方法的区别说明
1.普通方法:
定义:简单的说方法就是完成特定功能的代码块。
普通方法定义格式:
修饰符 返回值类型 方法名 (参数类型 参数名1,参数类型 参数名2,.........) { 函数体; return 返回值; }
返回值类型用于限定返回值的数据类型。
普通方法分为:有明确返回值的方法和没有明确返回值的方法。
A.有明确返回值的方法的调用
可以单独调用(无意义)、输出调用、赋值调用(推荐)。
public static int sum (int a , int b) { int c =a+b; return c ; } public static void main(String[] args) { //sum(10,20); //单独调用 //System.out.println(sum(10,20)); //输出调用 int sum01 =sum(10,20); //赋值调用 }
B.没有明确返回值的方法调用(void类型方法的调用)
只能单独使用。
(如果一个方法没有明确的返回值类型,方法定义中的“返回值类型”就用void代替,表示该方法无返回值类型。)
2.构造方法
定义:简单的来说是给对象的数据进行初始化的。
构造方法是类的一个特殊的成员,在类实例化时会自动调用。
构造方法定义格式:
修饰符 方法名() { }
注意:
1.方法名与类名相同。
2.没有返回值类型。 3.没有具体的返回值。
构造方法分为:无参构造方法和有参构造方法。
A.无参构造方法
public class Student{ public Student(){ //无参构造方法 System.out.println("无参方法被调用"); } } public class Test { public static void main (String[] args){ Student stu = new Student(); //实例化Student对象 } }//该方法是无参的构造方法,即构造方法不接收参数,执行后输出即可,无参的构造方法被调用。
B.无参构造方法
为一个属性赋值有两种方法:①、直接访问对象属性 ②、通过setXxx()方法
如果想在实例化对象的同时就为这个对象的属性进行赋值,可以通过带参数的构造方法来实现
public class Student{ private String name; private int age; public Student(String name,int age){ //有参构造方法 this name = name; this age = age ; } public void show (){ System.out.println("姓名:"+name+"年龄:"+age); } } public class Test02(){ public static void main (String[] args) { Student stu = new Student("王小五",25); //实例化对象的同时赋值 stu.show(); } }
构造方法注意事项:
1.java中的每一个类都至少有一个构造方法,如果我们没有创建,系统会为我们创建一个默认的无参构造方法。(不显示代码)
2.但是如果我们定义了构造方法,系统就不会再为我们提供默认的无参构造方法了。这个时候想使用无参构造方法必须自己定义。因为实例化对象时,不一定会输入参数,那么没有无参的构造方法,又不输入参数,就会出错。
3.构造方法需要用public来修饰,若使用private,在其他类中无法将其实例化。
4.构造方法是可以重载的。
补充知识:java中 concat()方法 , "+"和append()方法的区别?
由下面的例子可看出,"+"和append()方法都可以对任意类型数据进行拼接,而concat()方法则需要将其他类型的数据则要转化为字符串后才能拼接
package 练习题; import java.util.ArrayList; import java.util.List; public class 练习题29 { public static void main(String[] args) { List<Object> list=new ArrayList<Object>(); list.add(100); list.add('日'); list.add("冲刺,决胜高考!"); StringBuffer sb=new StringBuffer(); for(char i=0;i<list.size();i++){ sb.append(list.get(i)); } System.err.println(sb); String s1=""; for(char i=0;i<list.size();i++){ s1=s1+list.get(i); } System.err.println(s1); String s2=""; for(char i=0;i<list.size();i++){ s2=s2.concat( list.get(i).toString()); } System.err.println(s2); String str1=""; System.err.println(str1.concat(null)); //运行后报空指针异常NullPointerException String str2=null; System.err.println(str2.concat("asdf"));//运行后报空指针异常NullPointerException } }
输出结果:
100日冲刺,决胜高考!
100日冲刺,决胜高考!
100日冲刺,决胜高考!
Exception in thread "main" java.lang.NullPointerException
concat()方法:String类的concat()方法(只能用于拼接字符串,不能拼接其他类型的数据)将指定的字符串拼接到该字符串的末尾。并且字符串本身和拼接的字符串都不能为null,否则运行程序后会报空指针异常NullPointerException(编译时没有报错)。
"+":可以对字符,数字,字符串等数据类型的拼接
append()方法:可以对字符,数字,字符串等数据类型的拼接,结果返回一个StringBuffer类型的对象
以上这篇java中构造方法和普通方法的区别说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。