首页 > 其他 > 详细

要点Java10 方法

时间:2014-02-28 12:04:54      阅读:374      评论:0      收藏:0      [点我收藏+]

方法(或叫功能/函数)Functions

在Java中方法都是定义在内的内容  如下:

public class Main {
    public static void foo() {
        //这里写方法所要做的事
    }
}

foo 是我们在类Main中定义的方法. 下面是需要主要方法 foo.的一些事

  • static 意思是这个方法属于类Main 而不是属于类Main实例化的某个对象 . 也就是说我们可以在另外一个类里面像这样 Main.foo()一样直接用。
  • void 意思是这个方法没有返回值。 在Java中也可以给方法定义一个返回值,这个需要在方法声明。
  • 现在这个方法没有任何参数, 但是在其他场景Java方法可以有一个或多个参数,稍后我们会看到。

带参的方法 Arguments

我们通常的Java方法的参数是值传递, 但是可能有人不会同意我的这个词汇 或讲法, 最好的解释办法是实际操作,了解它到底是怎么执行的,结果是什么.

值传递表示 当方法运行时,将会拷贝参数,然后在方法内使用。下面是我们定义的方法

public void bar(int num1, int num2) {
    ...
}

这是在另外一个地方调用这个方法

int a = 3;
int b = 5;
bar(a, b);

bar(a, b) 运行时,你可以想象运行 bar 的后两行加上一个这样的代码 :

int num1 = a;
int num2 = b;
然后在执行方法其余的部分

这意味着 a 的值拷贝到 num1 and b的值拷贝到 num2. 在方法内改变 num1 and num2不会影响 a and b.

如果参数是对象,规则时一样的,但是执行时有一点点区别. 如下:

public void bar2(Student s1, Student s2) {
    ...
}

现在我们使用这个方法

Student joe = new Student("joe");
Student jack = new Student("jack");
bar2(joe, jack);

同样我们开始运行bar2时相当于加入这两句话

Student s1 = joe;
Student s2 = jack;

但是我们在赋值对象时, 和赋值基本对象的值有一点区别. s1 和joe 是两个不同的引用指向同一个对象 . s1 == joe 是true,这意味着我们运行方法时改变 s1 同时会改变joe . 但是我们改变s1引用指向到其他值, 那么不会影响到索引 joe.

s1.setName("Chuck"); // joe 的 name 也会变为 Chuck 
s1 = new Student("Norris"); // s1 是一个新的 student对象 , 已经和 joe指向的对象不同了
// s1 == joe   这个时候s1 和 joe 已经不想等了 为false

非静态方法

非静态方法在Java中比静态方法用得多得多。非静态方法只能通过对象调用,而不像静态方法可以直接通过类调用(整个类都能用,不需实例化类)

非静态方法可以访问和修改该对象的field变量 如下的 name 值。

public class Student {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

调用方法需要 Student类的对象 如下

Student s = new Student();
s.setName("Danielle");
String name = s.getName();

Student.setName("Bob"); // Will not work! 不能执行 这是静态方法的方式
Student.getName(); // Will not work!

总结

    • 每个Java方法必须在类中
    • 静态方法属于类,而非静态方法属于对象
    • 所有函数的参数是按值传递,基本类型的内容被复制,而对象不会被复制,有些人会说“按引用传递”

说明:文章结合多家网站资料,以及国外教程总结的相关要点,提供的简单自学材料 for my friends。

要点Java10 方法,布布扣,bubuko.com

要点Java10 方法

原文:http://blog.csdn.net/tanxiang21/article/details/20056383

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!