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!");
}
}