码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA面向对象(2)

时间:2017-10-28 13:45:58      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:需求   tag   示例   name   work   soft   调用   test   自身   

1.构造方法

  什么是构造方法?
    构造方法是一种特殊的方法,方法名必须与类名完全相同,没有任何返回类型,连void也没有。

  构造方法有什么作用?

    构造方法用于对类的成员变量进行初始化。

示例:

class MyDate{
    
    //Field
    int year;    
    int month;    
    int day;
    
    //Constructor 
    MyDate(){}  //没有参数的构造方法
    
    MyDate(int _year, int _month, int _day){ //有参数的构造方法
        
        year = _year;
        month = _month;
        day = _day;    
        
    }
    
}
public class Test01{
    
    public static void main(String[] args){
        
        //创建对象
        MyDate date = new MyDate(2017,10,29);   //调用的是有参数的构造方法  
        
        System.out.println(date.year + "年" + date.month + "月" + date.day + "日");
        
    }
        
}

 2.this关键字

  什么是this关键字?

    this关键字是一个引用类型,在堆中每一个JAVA对象都有this,this保存的是内存地址,这个内存地址指向这个对象自身。

  this关键字可以用在哪些地方?

    this可以用在成员方法中。

    this可以用在构造方法中。

示例:

this 用在成员方法中。

class Employee{
    
    //Field
    int empNum;
    
    String empName;
    
    //Constructor 
    Employee(){}
    
    Employee(int num, String name){
        
        empNum = num;
        empName = name;
        
    }
    
    //Method
    //成员方法
    public void work(){
        
        System.out.println(empName + " is working!");
        
        //成员方法中访问成员变量必须加上"引用."
        //this 指的是当前的对象,谁去访问这个成员方法,this就代表谁
        //如果使用的是同一个类中的变量,那么可以省略"引用."
        System.out.println(this.empName + " is working!");
        
    }

    public void m1(){
      
        this.m2();
        m2();

    } 

    public void m2(){

        System.out.println("Testing!");

    }     
    
}    
public class Test02{
    
    public static void main(String[] args){
        
        //创建对象
        Employee e1 = new Employee(01,"Loafer");
        
        e1.work();
        
        //创建对象
        Employee e2 = new Employee(02,"Sorcerer");
        
        e2.work();
       e2.m1(); } }

 this 还可以用来区分成员变量和局部变量,当成员变量和局部变量重名的时候可以用this来区分。

class Animal{
    
    //Field
    private int age;
    
    //Method
    //成员方法
    public void setAge(int age){
        
        this.age = age; //this.age 表示的是 属性里面的age, 而"="后面的age表示的是方法里面的变量age
        
    }
    
    //成员方法
    public int getAge(){
        
        return age;
        
    }
        
} 

this 用在构造方法中,通过一个构造方法去调用另一个构造方法,目的是为了实现代码的重用。

class MyDate {
    
    //Field
    int year;
    int month;
    int day;
    
    //Constructor 
    //需求:默认日期是2017年10月28日
    MyDate(int year, int month, int day){
        
        this.year = year ;
        this.month = month;
        this.day = day;
        
    } 
    
    MyDate(){
        
        this(2017,10,28);
        /*
        this.year = 2017;
        this.month = 10;
        this.day = 28;
     */
        
    }
    
}

 3.Java内存的主要划分

技术分享

 

JAVA面向对象(2)

标签:需求   tag   示例   name   work   soft   调用   test   自身   

原文地址:http://www.cnblogs.com/sorcerer/p/7746457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!