说类与对象,类是一个模板,用来定义对象的数字域是什么以及方法是作什么的。
一个对象则是类的一个实例。
我们可以从一个类中创建多个实例。创建实例的过程称为实例化。
类中使用变量定义数字域,使用方法定义动作,除此之外,类还提供一种称之为构造方法的特殊类型方法,调用他可以创建一个新对象。构造方法本身是可以完成任何动作的,但设计构造方法是为了完成初始化动作,例如:初始化对象的数据域。
下面: 我们定义一个类, 公交车。("//”表示注释 后面接任何数值都不会影响代码本身)
创建类的格式是:public class 类名{}
public class bus {
}
每个对象都会有不同的特征,也可以叫属性他们是由具有当前值的数据域来表示的。
例如:公交车我们分析一下,他的属性有什么。
比如说:什么颜色、什么品牌、尺寸等等。
那么这些属性我们用什么表示呢,可以用 字符串 String来表示、整数 int、小数 double。
颜色、品牌我们可以用字符串表示、尺寸我们可以用整数表示。
定义属性的格式: public 属性类型 属性名;
public String brand; public String colour; public int size;
一个对象的行为,也称为动作,就是我们说的方法。调用对象的一个方法就是要求对象完成一个动作。例如我们定义一个公交车前进(Forward)的方法。
普通方法的格式:public void 方法名(参数类型 参数名,.....){方法需要执行的内容} void 方法没有返回值
//定义一个普通方法 public void Forward(){ //输出 这是公交车前进的方法 System.out.println("这是公交车前进的方法"); }
上面我们说到一个构造方法,它可以实例化对象、给属性设置初始值、完成方法中的动作。
格式: public 构造方法名(数据类型 参数名,....){}
这里呢我们需要注意三点:
1.构造方法不能定义返回值数据类型;
2.构造方法必须要跟类名完成一致;
3.java类中会默认提供一个无参数的构造方法,自定义了构造方法后,默认的构造方法就会被覆盖,无法使用,你只能使用你自定义的构造方法。
不同的对象带着不同的属性参数,就用到方法的重载。
方法的重载:
1.方法名必须要完成一致:
2.方法所带的参数个数、参数类型、参数顺序至少要有一个不同。
重载普通方法:
//重载一个普通方法 加入参数类型 参数名 public void Forward(String colour){ //输出 这是公交车前进的方法 颜色是 System.out.println("这是公交车前进的方法"+"颜色是"+colour); }
重载构造方法:
//重载构造方法 public bus(String brand){ this.brand=brand; System.out.println("这是带一个参数的构造方法"+"品牌是"+brand); }
重载构造方法:
//重载一个构造方法 public bus(String brand,int size){this.brand=brand; this.size=size; System.out.println("这是带两个参数的构造方法"+"品牌是"+brand+"尺寸是"+size); }
这里有一个this关键字。
java中当参数名和属性名一致时,java会采用就近原则;
1.this.属性名
当参数名和属性名一致时,可以使用this关键字做区分,加上this.表示属性,没有加的则表示参数。
2.this(参数值,...);
调用当前对应参数的构造方法。3.this.普通方法名(参数值,...);调用当前对象中的普通方法。
3.this.普通方法(参数值,...);
调用当前对象中的普通方法。
那么这个this到底是谁呢?this是用来表示对象的;谁在调用方法,方法中的this就表示谁。假设a对象在调用方法,这方法中的this就是a。类似生活中“我”这个词。
然后加入一个主方法再代码整合到一起。
//创建一个公交车的类 格式:public class 类名{} public class bus { public String brand; public String colour; public int size; //定义一个普通方法 public void Forward(){ //输出 这是公交车前进的方法 System.out.println("这是公交车前进的方法"); } //重载一个普通方法 加入参数类型 参数名 public void Forward(String colour){ //输出 这是公交车前进的方法 颜色是 System.out.println("这是重载公交车前进的方法"+"颜色是"+colour); } //重载构造方法 public bus(String brand){ this.brand=brand; System.out.println("这是带一个参数的构造方法"+"品牌是"+brand); } //重载构造方法 public bus(String brand,int size){ this.brand=brand; this.size=size; System.out.println("这是带两个参数的构造方法"+"品牌是"+brand+"尺寸是"+size); } //定义一个主方法 public static void main(String[] args){ //实例化对象 bus b=new bus("大奔"); b.Forward(); b.Forward("红色"); bus a=new bus("别克",20); a.Forward(); a.Forward("黑色"); } }
然后运行一下:
这是带一个参数的构造方法品牌是大奔
这是公交车前进的方法
这是重载公交车前进的方法颜色是红色
这是带两个参数的构造方法品牌是别克尺寸是20
这是公交车前进的方法
这是重载公交车前进的方法颜色是黑色
当然还有一种我们需要使用外部参数的方法 “就是没有列出来的属性“。
方法格式:
public void 方法名(参数类型 msg){
System.out.println(“【”+msg+”】”);}
主方法中实例化并调用方法的格式:
参数类型 参数名 =参数的赋值;
对象名.方法名(参数名);