类的定义和使用
把不同类分开定义,即把year,month,day单独放在一个类中,方便以后继承等多种结构的实现,也符合面向对象的思想。提倡这么做
package 测试;
class BirthdayTest{
int year,month,day;//成员变量
//成员变量在对象创建后有默认值,整型为0,字符型为空格,布尔型为false,参考类型变量为null
}//创建一个类,新的数据类型BirthdayTest
public class Birthday {
public static void main(String args[])
{
BirthdayTest TomBirth,MarryBirth;//定义两个Birthday类型的变量(参考类型变量)
TomBirth=new BirthdayTest();//使用new创建对象,并给同一类型的参考类型变量赋值,赋的是TomBirth型对象的地址
MarryBirth=new BirthdayTest();//所以,TomBirth和MarryBirth相当于指针(被称为句柄),只是不能移动位置,提高了安全性
TomBirth.year=1998;
TomBirth.month=10;
TomBirth.day=28;
MarryBirth.year =2000;
MarryBirth.month =12;
MarryBirth.day =12;
System.out.println("Tom的生日:"+TomBirth.year+"年"+TomBirth.month+"月"+TomBirth.day+"日");
System.out.println("Marry的生日:"+MarryBirth.year+"年"+MarryBirth.month+"月"+MarryBirth.day+"日");
MarryBirth=TomBirth;//俩指向TomBirth指向的对象,原MarryBirth指向的对象没有句柄,成为垃圾,系统自动回收空间
System.out.println("Marry的生日:"+MarryBirth.year+"年"+MarryBirth.month+"月"+MarryBirth.day+"日");
}
}
类定义中创建自身的对象:把两个类合成一个类,但不提倡这么做,尽量让主类独立,承担程序入口的功能
package 测试;
public class Birthday{
int year,month,day;
public static void main(String args[])
{
Birthday TomBirth,MarryBirth;
TomBirth=new Birthday();
MarryBirth=new Birthday();
TomBirth.year=1998;
TomBirth.month=10;
TomBirth.day=28;
MarryBirth.year =2000;
MarryBirth.month =12;
MarryBirth.day =12;
System.out.println("Tom的生日:"+TomBirth.year+"年"+TomBirth.month+"月"+TomBirth.day+"日");
System.out.println("Marry的生日:"+MarryBirth.year+"年"+MarryBirth.month+"月"+MarryBirth.day+"日");
}
}
二、方法的定义
方法(类似于函数)的定义,调用,传参,重载(重载的方法在一个类中,方法名相同,参数类型,个数,顺序至少有一个不同
package 测试;
class BirthdayTest{
int year,month,day;//成员变量(类似全局变量)
void setBirthday(int y,int m,int d)//方法1
{
year=y;
month=m;
day=d;
}
String showBirthday()//方法2
{
return ("(年 月 日)"+year+","+month+","+day);
}
void printBirthday() {
System.out.println("生日"+showBirthday());//同一个类中的方法可以相互调用
}
}
public class Birthday{
public static void main(String args[])
{
BirthdayTest TomBirth,MarryBirth;
TomBirth=new BirthdayTest();
MarryBirth=new BirthdayTest();
TomBirth.setBirthday(1998,10,28);
MarryBirth.setBirthday(2000,12,12);
System.out.println("Tom的生日"+TomBirth.showBirthday());
System.out.println("Marry的生日"+MarryBirth.showBirthday());
TomBirth.printBirthday();
}
}