java中构造方法和普通方法的区别说明

 更新时间:2020年08月25日 09:53:46   作者:LRH呀  
这篇文章主要介绍了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中构造方法和普通方法的区别说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解Java的Spring框架中bean的注入集合

    详解Java的Spring框架中bean的注入集合

    这篇文章主要介绍了详解Java的Spring框架中bean的注入集合,Spring是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • SpringCloud协同开发实现方法浅析

    SpringCloud协同开发实现方法浅析

    好几个人同时开发同一个服务上的不同模块,导致你需要调试的接口总是被路由到别人的服务上,非常影响调试的效率,而且人越多越难受,总是请求不到自己的服务,这篇文章主要介绍了SpringCloud协同开发实现方法
    2022-12-12
  • JVM字符串常量池StringTable的具体使用

    JVM字符串常量池StringTable的具体使用

    字符串常量池是JVM中的一个重要结构,用于存储JVM运行时产生的字符串,本文主要介绍了JVM字符串常量池StringTable的具体使用,感兴趣的可以了解一下
    2024-04-04
  • Java数据结构之链表实现(单向、双向链表及链表反转)

    Java数据结构之链表实现(单向、双向链表及链表反转)

    这篇文章主要给大家介绍了关于Java数据结构之链表实现的相关资料,其中包括单向链表、双向链表及链表反转的实现代码,需要的朋友可以参考下
    2021-06-06
  • java设计模式—静态代理模式(聚合与继承方式对比)

    java设计模式—静态代理模式(聚合与继承方式对比)

    下面小编就为大家带来一篇java设计模式—静态代理模式(聚合与继承方式对比)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Spring中的Schedule动态添加修改定时任务详解

    Spring中的Schedule动态添加修改定时任务详解

    这篇文章主要介绍了Spring中的Schedule动态添加修改定时任务详解,可能有人会问,为啥不用Quartz,Quartz自然是非常方便强大的,但不是本篇要讲的内容,本篇就偏要使用SpringSchedule来实现动态的cron表达式任务,需要的朋友可以参考下
    2023-11-11
  • Nacos docker单机模式部署实现过程详解

    Nacos docker单机模式部署实现过程详解

    这篇文章主要介绍了Nacos docker单机模式部署实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • java判断用户输入的是否至少含有N位小数的实例

    java判断用户输入的是否至少含有N位小数的实例

    下面小编就为大家分享一篇java判断用户输入的是否至少含有N位小数的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • Java数据结构之双向链表图解

    Java数据结构之双向链表图解

    这篇文章主要为大家详细介绍了Java数据结构之双向链表,文中图解分析的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Java算法之BFS,DFS,动态规划和贪心算法的实现

    Java算法之BFS,DFS,动态规划和贪心算法的实现

    广度优先搜索(BFS)和深度优先搜索(DFS)是图遍历算法中最常见的两种算法,主要用于解决搜索和遍历问题。动态规划和贪心算法则用来解决优化问题。本文就来看看这些算法的具体实现吧
    2023-04-04

最新评论