疯狂java学习笔记之面向对象(三) - 方法所属性和值传递

方法的所属性:
  从语法的角度来看:方法必须定义在类中

  方法要么属于类本身(static修饰),要么属于实例 -- 到底是属于类还是属于对象? 有无static修饰

  调用方法时:必须有主调对象(主语,调用者)

 

1 public class MathTest{
2     public static void main(String[] args){
3         System.out.println(Math.sin(1.57));
4         System.out.println(Math.sin(Math.PI/2));
5     }
6 }

 

 1 public class TestMethod {
 2     String name;
 3 
 4     //自定义带参数的构造器后,系统不会再为类提供无参构造器
 5     //注意:若程序员没有构造器,系统默认会为类提供一个无参构造器
 6     public TestMethod(String name){
 7         this.name = name;
 8     }
 9         
10     public void walk(){
11         System.out.println(this.name + "在走路");
12     }
13 
14     public void run(){
15         //TestMethod t = new TestMethod("老A");
16         //t.walk();
17         //方法中看不出this代表谁,谁调用它就代表谁,这里是tt调用run的,所以this代表tt
18         this.walk();
19         System.out.println(this.name + "在跑步");
20     }
21 
22     public static void main(String[] args) {
23         TestMethod tt = new TestMethod("老C");
24         tt.run();    
25     }
26 }

 

方法值传递:

  Java方法的参数传递机制"值传递/副本传递",它并不会把方法中的值传递过去,而是通过副本的形式传递的

  形参个数可变的方法type... 形参名

 1 class TestArgs {
 2     public void age(int age) {
 3         System.out.println("a的年龄为:" +age);
 4     }
 5 
 6     //int... 表示可以传入多个int类型的参数
 7     public void test(int... ages){
 8         //在该方法中ages 相当于一个数组
 9         for(int ag : ages){
10             System.out.println("b的年龄为:" + ag);
11         }
12     }
13 
14     public static void main(String[] args) {
15         //定义一个ta变量指向TestArgs实例,因为类中方法都是实例方法,所以必须创建实例才能调用
16         TestArgs ta = new TestArgs();
17         ta.age(22);
18         System.out.println("~~~~~~~~~~~~~~~~~~~~~");
19         ta.test(10,20,11,23,55,19,44,68);
20     }
21 }

 

注意:

  A、每个方法最多只能有一个形参个数可变的参数public void test(int... nums,String... name)×
  B、形参个数可变的参数必须位于最后
    public void test(int... nums,String name) ×
    public void test(String name,int... nums) √

posted @ 2014-12-11 17:22  一世飛扬  阅读(159)  评论(0编辑  收藏  举报