/*
类:是一类事物的抽象概念
对象:是以类为模板所创建的实例
*/
public class Animal {
/*
成员变量:在类中,方法体之外定义
可以是java中的所有数据类型
会自动初始化,为默认值
成员变量在创建对象的时候会从类中复制到对象中
在对象生成是创建,在对象销毁时会自动销毁
可以被方法,代码块访问
作用范围:整个类体
局部变量:在方法或代码块中定义
可以是java中的所有数据类型
必须自己初始化
方法结束后,自动销毁
作用范围:方法或者代码块中
*/
String name;//成员变量
int age;
String color;
/*
方法 格式: 权限访问修饰符 [修饰符] 返回值类型 方法名(参数){
方法体
return 返回值;
}
构造方法:方法名和类名相同,不需要返回值,且不需要void修饰
用来初始化对象
一个类中可以有多个构造方法
无参构造方法 public 类名(){}
有参构造方法 public 类名(参数){}
(如果不写无参构造方法会覆盖无参构造方法)
方法重载:方法名相同,但是传入的参数的数据类型,顺序,个数不同
跟返回值类型无关
调用时会根据参数的类型个数顺序选择对应的方法
*/
public Animal(){
System.out.println("这是无参构造方法");
}
public Animal(String name){
this.name=name;
System.out.println("这是一个参数的构造方法");
}
public Animal(String name,int age,String color){
this.name=name;
this.age=age;
this.color=color;
System.out.println("这是三个参数的构造方法");
}
public void Run(){
int a =0;//局部变量
System.out.println(age+"岁的"+name+"可以跑");
}
public void Run(int speed){
System.out.println(age+"岁的"+name+"可以以"+speed+"的速度跑");
}
public void Jump(){
System.out.println(color+"色的"+name+"会跳");
}
}
//测试 创建对象并赋值
public class AnimalTest {
public static void main(String[] args) {
Animal c=new Animal();
c.age=3;
c.name="猫";
c.color="黑";
c.Run();
c.Jump();
Animal d=new Animal();
d.name="狗";
d.age=4;
d.color="白";
d.Run();
d.Jump();
}
}
//测试 调用无参和有参方法
public class AnimalTest2 {
public static void main(String[] args) {
Animal a=new Animal();
Animal b=new Animal("猪");
Animal c=new Animal("狗",17,"白");
c.Run();
c.Run(4);
}
}