java基础(三)-- 方法

一、方法

     1、方法是类的功能,类的功能只能通过方法来体现

   2、方法必须属于某个类,即方法必须定义在类中

   3、方法的调用:类的对象 + " . " + 方法名

   4、java普通方法可以操作(读取和更改)调用它的对象的属性。

   5、java普通方法的组成:访问控制符 + 返回值 + 方法名 + (方法参数列表)+{方法体}

      (1)、访问控制符:控制方法的访问权限

    (2)、返回值和关键字:

       <1>、给方法定义一个返回值是通过将返回值类型代替原void实现的。

      <2>、return后面的直接值、变量或者表达式的值必须跟方法定义的返回值匹配

      <3>、当方法执行到return的时候,会结束执行。

      (3)、方法名:命名规范

    (4)、参数列表:参数:是方法获取数据的第二个途径,第一个途径是直接使用类定义的属性。

       <1>、形式参数:函数定义的时候,在参数列表中的参数

      <2>、实际参数:在调用的时候,给形式参数的值。

      <3>、实参的值必须能够赋给形参。(数据类型、顺序)

      <4>、多个参数时,用逗号隔开。(定义方法或者调用方法时)

    (5)、方法体

二、方法重载

  1、方法签名:方法签名由方法名和方法的参数类型组成的。

     (1)、方法签名是java平台执行方法的时候,用来确定执行那个方法的。

    (2)、方法签名是由方法名和参数类型决定的,与方法的其他属性无关。

  2、重载:类中的两个或多个方法,如果它们有相同的方法名,但是却有不同的方法签名,那么这几个方法就是重载的。

      (1)、重载的优势是可以重用方法名。

    (2)、方法签名和方法的返回值无关

    (3)、方法签名与ufangfade形参名字无关。

    (4)、难点--参数匹配原则:第一要符合赋值规则,第二精度最小。

    (5)、使用类的实例做参数

三、局部变量和实例变量

  1、局部变量:声明在方法内的变量,称作局部变量。

 

  2、实例变量:在一个类当中,声明在方法之外的变量称作实例变量。

  3、实例变量定义需要三个部分:访问控制符(可没有)+ 数据类型 + 变量名

  4、实例变量具有初始值,使用时不必关心是否赋值。

  5、局部变量的作用域是从声明开始,到方法体结束。

  6、在读取一个局部变量之前,必须要给这个局部变量赋值。

四、this关键字:指向对象自己的引用

  1、当方法体中使用一个变量的时候,java平台会按照先局部变量后实例变量的顺序寻找。

  2、this关键字在方法中使用,是指向对象自己的引用。如果使用this关键字访问一个变量,则是访问实例变量而非局部变量。即当存在this关键字的时候,java平台不会从方法当中寻找变量。

public class SimpleClass{
    public int a;
    public void test(){
        int a =50;
        this.a = a + 5;
    }
}

 

 

public class TestThis{
    public static void main(String90 args){
    SimpleClass simple = new SimpleClass();
    simple.test();
    System.out.println(simple.a);
}

  上述代码的输出结果为

55

 

  simple.test();使用的是SimpleClass的实例(对象)simple来调用test()方法的。程序执行过程中,进入test方法,test方法当中声明的局部变量a的值是50,this.a中的this就代表调用这个方法的对象。也就是simple。或者说this和simple有相同的值,都指向同一个对象。所以当java平台在执行程序的时候,运行到this.a其实就是访问了simple指向的对象,即访问了SimpleClass的属性,因此这个a的值就是实例变量a的值。

  3、在方法中调用方法

五、构造方法:(Constructor)

  1、构造方法和普通方法的特殊之处:构造方法没有返回值(不能使用void);构造方法的方法名必须与类名一样。

  2、一个类当中可以有多个构造方法,但至少有一个构造方法。

  3、构造方法的作用:

public class Car{
    int speed;
    String color;
    String name;
    String direction;

    //构造方法,必须与类的名字相同
    public Car(){
    
    }

    //方法的重载
    public Car(String p_name, String p_color){
          this.name = p_name;
           this.color = p_color;
    }
}

 

public class TestCarConstructor{
    public static void main(String[] args){
        Car anotherCar= new Car("球状眼镜蛇","紫色");
        System.out.println(anotherCar.name);
        System.out.println(anotherCar.color);
    }
}

 

球状眼镜蛇
紫色
      (1)、使用new关键字创建实例的时候不仅仅创建了一个对象,同时还在创建对象后调用了相应的构造方法。
    (2)、构造方法也有方法签名,会根据方法签名来决定调用哪个构造方法。
    (3)、关于构造方法,只能有java平台创建对象时候才能默认的去调用,普通方法当中不能调用构造方法。java构造方法可以调用另一个构造方法。
    (4)、构造方法本身并不神秘,通常它只是去完成一些初始化的工作。构造方法本身并不恩那个创建出一个对象,真正创建对象的是java平台,构造方法只是java平台在创建出一个对象之后会默认调用的一个方法,仅此而已。
   4、留一个无参的构造方法:java编译器只会在一个类没有任何构造方法的时候才会给类添加一个无参的构造方法。给类留下一个无参的构造方法,并且在这个方法当中为重要的属性赋值是一个好习惯,这样可以让类更容易的被使用,并减少程序出错的概率。
  5、在构造方法当中调用构造方法:
     (1)、通过this+构造方法实参,可以在一个构造方法中调用同类的另一个构造方法。
    (2)、通过this+构造方法实参调用同类中的另一个构造方法的时候,必须将这个分那个在构造方法的第一行。
    


 

posted on 2016-11-10 15:23  The—Loner  阅读(152)  评论(0编辑  收藏  举报

导航