java中实例变量调用、带static修饰和不带static修饰方法的调用总结例子

package com.company.test03;

public class Test {

    // 带有static的方法
    public static void method1(){
        // 调用doSome
        // 使用完整方式调用
        Test.doSome();
        // 使用省略方式调用
        doSome();
        // 调用doOther
        // 使用完整方式调用
        Test t = new Test();
        t.doOther();
        // 使用省略方式调用
        // 无

        // 访问i
        // 完整方式
        System.out.println(t.i);
        // 省略方式

    }
    // 没有static的方法
    public void method2(){
        // 调用doSome
        // 使用完整方式调用
        Test.doSome();
        // 使用省略方式调用
        doSome();

        // 调用doOther
        // 使用完整方式调用
        this.doOther();
        // 使用省略方式调用
        doOther();

        // 访问i
        // 完整方式
        System.out.println(this.i);
        // 省略方式
        System.out.println(i);
    }

    public static void main(String[] args){
        // 要求在这里编写程序调用method1
        // 使用完整方式调用
        Test.method1();
        // 使用省略方式调用
        method1();
        // 要求在这里编写程序调用method2
        // 使用完整方式调用
        Test test = new Test();
        test.method2();
        // 使用省略方式调用
        // 无
    }
    // 没有static的变量
    int i = 10;

    // 带有static的方法
    public static void doSome(){
        System.out.println("do some!");
    }
    // 没有static的方法
    public void doOther(){
        System.out.println("do other!");
    }
}

package com.company.test03;
/*
* this的一种特殊使用
*
* this可以使用在哪:
*   1、可以使用在实例方法中,代表当前对象
*   2、可以使用在构造方法中,通过当前的构造方法调用其他的构造方法【语法格式:this(实参);】
* */
public class Date {
    private int year;
    private int month;
    private int day;

    public Date() {
        // 有时候因为需求,当调用无参构造的时候,日期默认为1970年1月1日
//        this.year = 1970;
//        this.month = 1;
//        this.day = 1;
        // 当参数过多时用上述这种方法会显得很麻烦,可以调用另一个构造方法来完成
        // 但是new方法会创建一个全新的对象
        // newDate(1970,1,1);

        // 需要采用以下方法,这种方法不会创建新的java对象,但同时又可以达到调用其他的构造方法。
        // 【注】这条代码必须写在构造器的第一行
        this(1970,1,1);
    }

    public Date(int year, int month, int day) {
        this.year = year;
        this.month = month;
        this.day = day;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public int getMonth() {
        return month;
    }

    public void setMonth(int month) {
        this.month = month;
    }

    public int getDay() {
        return day;
    }

    public void setDay(int day) {
        this.day = day;
    }
}

package com.company.test02;
/*
* 什么时候程序会出现空指针异常?
*     空引用访问实例相关的数据,因为实例相关的数据就是对象相关的数据,这些数据
*     在访问的时候,必须有对象的参与,当空引用的时候,对象不存在,访问这些实例
*     数据一定会出现空指针异常。
*
* 实例相关的数据:
*    实例变量【对象需要存在】
*    实例方法【对象需要存在】
* */
public class Test {
    public static void main(String[] args) {
        Test.doSome();
        doSome();

        Test t = new Test();
        t.doSome();

        //引用是空
        t = null;
        t.doSome(); //但是此处并没有出现空指针异常
        /*
        * 带有static的方法,其实既可以采用类名的方式访问,也可以采用引用的方式访问,
        * 但是即使采用引用的方式去访问,实际上执行的时候和引用指向的对象无关
        * 在myeclipse中开发的时候,使用引用的方式访问带有static的时候,程序会出现警告,
        * 所以带有static的方法还是建议使用“类名.”的方式去访问。
        * */

    }

    //带有static的方法,需要使用“类名.”的方式访问
    public static void doSome(){
        System.out.println("do some!");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值