关于java中的return的用法的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java中的return的用法的问题相关的知识,希望对你有一定的参考价值。

interface Singer
public void sing();
public void sleep();

class Student implements Singer
private String name;
Student (String name)
this.name = name;


public void study ()
System.out.println("studying");

public String getNmat() return name;
我想问一下这小段代码的最后的那个return name是什么意思还有return在什么时候使用和怎么使用谢谢

最后的方法是public String getNmat().这个方法的意思是公共的返回String类型值的getNmat方法.也就是说如果调用这个方法的话会返回一个String类型的值.
因此这个方法里面必须有return来返回.而return name返回的是Student这个类中的name属性.因为name属性是private的,因此想要访问到它需要使用setter和getter,而这个getNmat也就是getter,专门用来访问类中私有的属性.
当一个方法的返回值部分是void的时候,此方法是没有返回值的.比如你的public void study()方法,这个方法就不需要返回值,因此方法内也没有return.
而一个方法需要返回值的时候,则需要使用return来返回一个值.
以上两种返回值,换成形象一点的说法.假如现在有一个学生,你叫他去学习,那么他就直接去学习了,不需要告诉你他去学习了.这就是没有返回值的void study()方法.现在你想知道他的名字,你就问他你叫什么名字,然后他必须回答你他的名字,这就是你的获得他名字的方法String getNmat().
参考技术A public String getNmat() return name;
你把这个方法拆分一下 在理解。
public 是指这方法为公共方法
String 是指返回值类型,因为这里有个String所以必须要用到return。(如果在这里String改为void,则不需要用return了)
getNmat() 是指这个方法的名字。如果你想用这个方法 直接调用这个名称就可以了。
我这样说 够言简意赅了吗 ?
哈哈 好评哟
参考技术B return是当方法有返回值时使用。有返回值的方法可以当一个值使用,比如直接把此方法赋值给一个变量,并且如果执行了return就代表方法已执行结束。如果方法没返回值就不需要return。但可以用return ;来结束此方法的后续执行。 参考技术C return,可以结束当前模块,可以返回一个boolean类型的值。一般联合boolean使用。 <a href="https://wenwen.sogou.com/login/redirect?url=http%3a%2f%2fschool.itzcn.com%2fspecial-spid-50.html%23" target="_blank">http://school.itzcn.com/special-spid-50.html#</a>上面也有return相关使用方法。 参考技术D 一般的方法分为有返回值和无返回值(void),如果需要返回值,则在方法的最后return 一个想同类型的变量或值。方法走到return之后,就结束了该方法。

Java关于Properties用法——替换配置文件中的参数

上一章讲了配置文件的基本用法,虽然上一章已经可以解决一些需求,但还不些不足之处。假如,配置文件里面的字符串有一部分需要经常变动,另外一些不需要,上一章的方法就不方便了,所以这章主要讲如何在配置文件中使用参数,然后替换字符串里面的参数值。


一、使用类MessageFormat替换配置文件中的参数

MessageFormat 提供了以与语言无关方式生成连接消息的方式。使用此方法构造向终端用户显示的消息。

MessageFormat 获取一组对象,格式化这些对象,然后将格式化后的字符串插入到模式中的适当位置。

注:MessageFormat 不同于其他 Format 类,因为 MessageFormat 对象是用其构造方法之一创建的(而不是使用 getInstance 样式的工厂方法创建的)。工厂方法不是必需的,因为 MessageFormat 本身不实现特定于语言环境的行为。特定于语言环境的行为是由所提供的模式和用于已插入参数的子格式来定义的。

简单来说MessageFormat是一个字符串格式化类,主要使用它的format()方法来替换一个字符串的参数。

1、配置文件如下:

技术分享

2、代码如下:

package test.email;

import java.io.IOException;
import java.io.InputStream;
import java.text.MessageFormat;
import java.util.Properties;


public class Test {

    public static void main(String[] args) throws IOException {

        Properties prop = new Properties();
        InputStream in = Test.class.getClassLoader().getResourceAsStream(
                "emailContent.properties");
        
        prop.load(in);
        //参数
        String params[]={"‘张三’ ","13488888888","70.8"};
        //从配置文件中读取模板字符串替换
        String msg=MessageFormat.format(prop.getProperty("text"),params);
        System.out.println("模板字符串:"+prop);
        System.out.println("替换后的字符串:"+msg);
        
    }

}

执行结果是:

模板字符串:{text=尊敬的{0}用户你好,您的手机号码{1}已经欠费{2},请尽快充值}
替换后的字符串:尊敬的‘张三’ 用户你好,您的手机号码13488888888已经欠费70.8,请尽快充值

 

注意:配置文件中的占位符{}从0开始,与参数数组下标一一对应!!!

二、MessageFormt的模式

MessageFormat用来格式化一个消息,通常是一个字符串,比如:

String str = "I‘m not a {0}, age is {1,number,short}", height is {2,number,#.#};

而MessageFormat可以格式化这样的消息,然后将格式化后的字符串插入到模式中的适当位置,比如:

将str中的{0}用"pig"替换,{1,number,short}用数字8替换,{2,number,#.#}用数字1.2替换。

那么最终用户得到的是一个格式化好的字符串"I‘m not a pig, age is 8, height is 1.2"。

MessageFormat本身与语言环境无关,而与用户提供给MessageFormat的模式和用于已插入参数的子格式模式有关,以生成适用于不同语言环境的消息。

MessageFormat模式(主要部分):

FormatElement:
         { ArgumentIndex }
         { ArgumentIndex , FormatType }
         { ArgumentIndex , FormatType , FormatStyle }

FormatType:
         number

         date

         time

         choice(需要使用ChoiceFormat)

FormatStyle:
         short
         medium
         long
         full
         integer
         currency
         percent
SubformatPattern(子模式)

还以str为例,在这个字符串中:

1、{0}和{1,number,short}和{2,number,#.#};都属于FormatElement,0,1,2是ArgumentIndex。

2、{1,number,short}里面的number属于FormatType,short则属于FormatStyle

3、{1,number,#.#}里面的#.#就属于子格式模式。

指定FormatTypeFormatStyle是为了生成日期格式的值、不同精度的数字、百分比类型等等

以上是关于关于java中的return的用法的问题的主要内容,如果未能解决你的问题,请参考以下文章

关于Java的Map用法的问题

Java关于Properties用法——替换配置文件中的参数

关于java中c标签foreach的用法?

关于java中c标签foreach的用法?

关于java中c标签foreach的用法?

关于java中静态常量的用法?