面向对象编程思想:抽象 继承 多态 封装
对象:万事万物皆对象.
类:把具有相同属性和方法的对象抽象出来形成的几何体!
类是对象的抽象,对象是类的具体!
如何描述一个类
属性(属性不初始化时也有初始值,会自动初始化,整形为0 小数型为0.0 boolean型为 false 引用类型(例如string 类型)为null 而变量不赋初始值时编译会报语法错误)
方法
public class Test { int id; boolean i; double ide; public static void main(String[] args) { int a=0; Test t1 = new Test(); System.out.println(a); System.out.println(t1.id); System.out.println(t1.ide); System.out.println(t1.i); } //最后输出 0 0 0.0 false }
如何初始化一个对象
通过 new 类名() 来产生一个对象!
C#以及JAVA中是没有全局变量的,而有全局常量
void:不是无返回类型,而是不返回值!
构造函数(实例化对象的时候会使用)(是类中的一个特别函数,与类名相同,并且无返回类型,注意不是无返回值,每个类中都会有一个隐式的无参构造函数(不需要手动写),同时构造函数可以重载):
public class Test
{
public Test()
{
System.out.println("使用构造函数来实例化一个对象!");
}
public static void main(String[] args)
{
Test t1 = new Test(); //在此句执行的时候打印 使用构造函数来实例化一个对象!
}
}
this关键字以及重载注意事项和构造方法的重载
重载:在同一个类中,有两个以上的相同方法,方法名相同(返回类型,方法名字),但参数(参数个数,参数的数据类型)不同,重载通常用来丰富方法功能
在写有参数构造方法时,将会覆盖掉以前的隐式构造函数,从而使以前的构造方法不存在,因此此时在实例化对象的时候特别注意要将参数写进去!
public class Test
{
int id;
String name;
int gg;
public Test()
{
System.out.println("使用构造函数来实例化一个对象!");
}
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return this.name;
}
public void setId(int id)
{
this.id=id;
}
public int getId()
{
return this.id; //this关键字指的就是这个类的对象本身
}
public void setGg(int gg)
{
gg=gg;
}
public int getGg()
{
return this.gg;
}
public static void main(String[] args)
{
Test t1 = new Test(); //在此句执行的时候打印 使用构造函数来实例化一个对象!
t1.setName("昊天");
t1.setId(11);
t1.setGg(450);
System.out.println("id:"+t1.getId()+" name:"+t1.getName()+" gg:"+t1.getGg());
Test t2 = new Test();
t2.setName("加油");
t2.setId(181);
t2.setGg(6000);
System.out.println("id:"+t2.getId()+" name:"+t2.getName()+" gg:"+t2.getGg());
}
}
最后输出结果:
可见如果不使用this关键字,只能给一个对象赋值,而剩下的对象的值仍然是第一个对象的值