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中构造方法和普通方法的区别说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java在原字符中插入新字符或字符串实例

    插入字符代码: public class Test { /**在原字符中插入新字符**/ public static void main(String[] args){ StringBuffer sb = new StringBuffer("田田是一个女生!");//建立一个字符缓存区,缓存区中的内容为"田田是一个女生!" System.out.println("原字符缓存区中的内容为:"+sb);//输出原字符缓存区中的内容 System.ou

  • java 将字符串追加到文件已有内容后面的操作

    我就废话不多说了,大家还是直接看代码吧~ /** * 将字符串追加到文件已有内容后面 * * @param fileFullPath 文件完整地址:D:/test.txt * @param content 需要写入的 */ public static void writeFile(String fileFullPath,String content) { FileOutputStream fos = null; try { //true不覆盖已有内容 fos = new FileOutputSt

  • Java读写文件,在文件中搜索内容,并输出含有该内容的所有行方式

    1.问题描述 在一个目录及子目录下查找 TXT或Java文件,从中搜索所有"对象"字样的行. 在D盘中的所有文件中搜索含有"对象"的行. 2.解题思路 先找出D盘下所有文件 再对每个文件中的每行内容进行,进行查找,若含有"对象"两字,输出该行. 3.程序代码 import java.io.File; import java.io.IOException; import java.util.Scanner; public class B { sta

  • Java获取文件ContentType案例

    源码如下: package com.oysept; import java.io.File; import java.io.IOException; import java.net.FileNameMap; import java.net.URLConnection; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import javax.activation.Mimetype

  • java中concat()方法的使用说明

    concat()方法介绍: 将几个字符串连接到一起. 例如: s = s.concat(str1);//将字符串str1接到字符串s后面 s = s.concat(str2);//将字符串str1接到字符串s后面 代码: public class Test { public static void main(String[] args){ String s = "厉害了,"; String str1 = "我的"; String str2 = "国!&qu

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

    1.普通方法: 定义:简单的说方法就是完成特定功能的代码块. 普通方法定义格式: 修饰符 返回值类型 方法名 (参数类型 参数名1,参数类型 参数名2,.........) { 函数体: return 返回值: } 返回值类型用于限定返回值的数据类型. 普通方法分为:有明确返回值的方法和没有明确返回值的方法. A.有明确返回值的方法的调用 可以单独调用(无意义).输出调用.赋值调用(推荐). public static int sum (int a , int b) { int c =a+b;

  • Java中==运算符与equals方法的区别及intern方法详解

    Java中==运算符与equals方法的区别及intern方法详解 1.  ==运算符与equals()方法 2. hashCode()方法的应用 3. intern()方法 /* Come from xixifeng.com Author: 习习风(StellAah) */ public class AboutString2 { public static void main(String[]arsgs) { String myName="xixifeng.com"; String

  • java 中sendredirect()和forward()方法的区别

    HttpServletResponse.sendRedirect与RequestDispatcher.forward方法都可以实现获取相应URL资源. sendRedirect实现请求重定向,forward实现的是请求转发. 在web服务器内部的处理机制也是不一样的. 1. 跳转方式 运用forward方法只能重定向到同一个Web应用程序中的一个资源.而sendRedirect方法可以让你重定向到任何URL. 表单form的action= "/uu ";sendRedirect( &q

  • java中String StringBuffer和StringBuilder的区别详解

    目录 从声明定义上来谈 从结构上来谈 从线程安全来谈 总结 从声明定义上来谈 只有String 可以 直接声明创建 而 StringBuffer 与 StringBuilder 必须去new对象 这是因为只有String会在这种声明方式下去字符串常量池创建,其他则没有 StringBuffer stf = new StringBuffer("abc"); StringBuilder stb = new StringBuilder("abc"); StringBuff

  • Java中文件的读写方法之IO流详解

    目录 1.File类 1.1File类概述和构造方法 1.2File类创建功能 1.3File类判断和获取功能 1.4File类删除功能 2.递归 2.1递归 2.2递归求阶乘 2.3递归遍历目录 3.IO流 3.1 IO流概述和分类 3.2字节流写数据 3.3字节流写数据的三种方式 3.4字节流写数据的两个小问题 3.5字节流写数据加异常处理 3.6字节流读数据(一次读一个字节数据) 3.7字节流复制文本文件 3.8字节流读数据(一次读一个字节数组数据) 3.9字节流复制图片 总结 1.Fil

  • Java中关键字final finally finalize的区别介绍

    目录 1. final 1.1 final修饰属性 1.2 final修饰方法 1.3 final修饰类 2. finally 3. finalize 这三个除了长得像以外,好像没什么联系 1. final final意为“最后的”,它是Java中的一个关键字. final可以修饰属性.方法.类. 1.1 final修饰属性 从final的含义就不难理解用final修饰内容的用意.final修饰属性,就表示这个属性是“最终的”,也就是不可更改的,换成我们熟悉的名词,也就是“常量”. privat

  • Java中Spring获取bean方法小结

    Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢? Bean工厂(com.springframework.beans.factory.BeanFactory)是Spring框架最核心的接口,它提供了高级IoC的配置机制.BeanFactory使管理不同类型的Java对象成为可能,应用上下文(com.springframework.context.ApplicationContext)建立在BeanFactory基础之上,提供

  • 浅谈Java中static和非static的区别

    关于static和非static变量的区别 1. static 修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在.非static修饰的成员变量是在对象new出来的时候划分存储空间,是与具体的对象绑定的,该成员变量仅为当前对象所拥有的. 2. static修饰的变量在加载的时候先于main方法加载在内存中的数据共享区-------方法区,而非static的变量在加载的时候,是要创建变量才加载在堆内存中的. 3. 一个stat

  • Java中ArrayList的removeAll方法详解

    本文介绍的是关于Java中ArrayList的removeAll方法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 在开发过程中,遇到一个情况,就是从所有骑手Id中过滤没有标签的骑手Id(直接查询没有标签的骑手不容易实现), List<Integer> allRiderIdList = new ArrayList(); // 所有的骑手,大致有23W数据 List<Integer> hasAnyTagRiderId = new ArrayList(); // 有标签

  • 详解Java中字符流与字节流的区别

    本文为大家分析了Java中字符流与字节流的区别,供大家参考,具体内容如下 1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个"流动的方向",通常可以从中读入一个字节序列的对象被称为输入流:能够向其写入一个字节序列的对象被称为输出流. 2. 字节流 Java中的字节流处理的最基本单位为单个字节,它通常用来处理二进制数据.Java中最基本的两个字节流类是InputStream和Out

随机推荐