面向对象01
1.类和对象
**类:**在计算机中,所有东西都是数据,和整型、浮点型相区别,类是一种引用数据类型(String也是)。理解上,我们把类看作是从一些数据抽象出的共同的特征和行为的组合,可以自己写。
例如:
一个具体的人张三,他有名字(name),年龄(age),会说话(say)。
和他完全不同的另一个人李四,也有名字(name),年龄(age),会说话(say)。
那么共同点name、age、say()就可以作为一个类的组成部分。
//创建一个类
public class Person {
String name;
int age;
void say(){};
}
**对象:**就像一个真实存在的人,是软件中真实存在的一组数据。是在内存中有空间,有内容的实体。
//对象的创建
public static void main(String[] args) {
Person 张三 = new Person();
Person 李四 = new Person();//创建了两个对象
}
**访问成员:**通过类创建出来的对象必然具备类中定义的特征/属性(成员变量)和类中定义的行为(方法)
//为两个对象各自的属性赋值,并调用共有的方法
张三.age = 15;
张三.name = "张三";
张三.say();
李四.age = 24;
李四.name = "李四";
李四.say();
如果没有单独赋值,new出来的对象属性只有默认值(数组元素也是一样)
byte,short,int,long,char---------------0 float,double---------------------------0.0
boolean--------------------------------false
引用类型--------------------------------null
2.方法的签名
Java规定:在同一个类中,不允许出现多个签名相同的方法。
方法的签名由方法名和参数列表组成。即:只要不改变名字或参数列表,
无论改变修饰符或是返回值还是怎么写方法体,只要在同一个类,Java都会报错。
3.方法的重载(overload/overloading)
-
在同个类中,方法名相同,参数列表不同。(方便用户调用)
-
编译器在编译时会根据方法的签名自动绑定调用方法
public static void say(){}; public static void say(int a){ System.out.println(a+"岁了"); }; 张三.say(); 张三.say(5);//调用不同的方法