面向对象编程思想:抽象 继承 多态 封装
对象:万事万物皆对象.
类:把具有相同属性和方法的对象抽象出来形成的几何体!
类是对象的抽象,对象是类的具体!
如何描述一个类
-
属性(属性不初始化时也有初始值,会自动初始化,整形为0 小数型为0.0 boolean型为 false 引用类型(例如string 类型)为null 而变量不赋初始值时编译会报语法错误)
-
方法
1public class Test 2{ 3 int id; 4 boolean i; 5 double ide; 6 public static void main(String[] args) 7 { 8 int a=0; 9 Test t1 = new Test(); 10 System.out.println(a); 11 System.out.println(t1.id); 12 System.out.println(t1.ide); 13 System.out.println(t1.i); 14 } 15 //最后输出 0 0 0.0 false 16}
如何初始化一个对象
通过 new 类名() 来产生一个对象!
C#以及JAVA中是没有全局变量的,而有全局常量
void:不是无返回类型,而是不返回值!
构造函数(实例化对象的时候会使用)(是类中的一个特别函数,与类名相同,并且无返回类型,注意不是无返回值,每个类中都会有一个隐式的无参构造函数(不需要手动写),同时构造函数可以重载):
1public class Test 2{ 3 public Test() 4 { 5 System.out.println("使用构造函数来实例化一个对象!"); 6 } 7 public static void main(String[] args) 8 { 9 10 Test t1 = new Test(); //在此句执行的时候打印 使用构造函数来实例化一个对象! 11 12 } 13 14}
this关键字以及重载注意事项和构造方法的重载
重载:在同一个类中,有两个以上的相同方法,方法名相同(返回类型,方法名字),但参数(参数个数,参数的数据类型)不同,重载通常用来丰富方法功能
在写有参数构造方法时,将会覆盖掉以前的隐式构造函数,从而使以前的构造方法不存在,因此此时在实例化对象的时候特别注意要将参数写进去!
1public class Test 2{ 3 int id; 4 String name; 5 int gg; 6 public Test() 7 { 8 System.out.println("使用构造函数来实例化一个对象!"); 9 } 10 11 public void setName(String name) 12 { 13 this.name=name; 14 } 15 16 public String getName() 17 { 18 return this.name; 19 } 20 21 public void setId(int id) 22 { 23 this.id=id; 24 } 25 26 public int getId() 27 { 28 return this.id; //this关键字指的就是这个类的对象本身 29 } 30 31 public void setGg(int gg) 32 { 33 gg=gg; 34 } 35 36 public int getGg() 37 { 38 return this.gg; 39 } 40 41 public static void main(String[] args) 42 { 43 44 Test t1 = new Test(); //在此句执行的时候打印 使用构造函数来实例化一个对象! 45 t1.setName("昊天"); 46 t1.setId(11); 47 t1.setGg(450); 48 System.out.println("id:"+t1.getId()+" name:"+t1.getName()+" gg:"+t1.getGg()); 49 Test t2 = new Test(); 50 t2.setName("加油"); 51 t2.setId(181); 52 t2.setGg(6000); 53 System.out.println("id:"+t2.getId()+" name:"+t2.getName()+" gg:"+t2.getGg()); 54 55 } 56 57}
最后输出结果:

可见如果不使用this关键字,只能给一个对象赋值,而剩下的对象的值仍然是第一个对象的值