要点Java10 方法
来源:互联网 发布:c语言strtok返回值 编辑:程序博客网 时间:2024/05/22 14:03
方法(或叫功能/函数)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。
0 0
- 要点Java10 方法
- Java10
- java10
- JAVA10
- Java10技能
- 学习Java10
- MainActivity.java10
- MenuInfo.java10
- StreamTools.java10
- java10个常用小方法.字符串转日期,统计字符串出现频率等.
- addShutdownHook()方法要点
- 生成器方法要点
- Java10月课堂总结
- java10个调试技巧
- java10道面试题
- java10-集合框架
- java10:复制数组
- Java10年技术栈
- java性能优化笔记 - 02
- linux perror()函数
- INI 文件的处理
- Android中的硬件加速
- DNS原理及其解析过程
- 要点Java10 方法
- Android中的Menu菜单小解
- android Service基础
- Ajax中文问题彻底解决
- ActionBar Goole官方例子-HoneyCombGallery
- vs2010编译出现LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 街头拦截访问(CLT)
- 熟吃西红柿更保护心脏
- 手机应用开发