类
类是对生活中一类具有共同属性和行为的事物的抽象。如猫类,都有毛的长短、颜色、名字等属性,也都能猫叫、吃饭等(不接受抬杠
类是对象的数据类型,是一个抽象的概念。
对象
类的实体化。比如罗小黑,是猫类的一个实体化。
属性
对象具有的各种特征,每个对象的每个属性都有特定的值(如猫毛有长毛、短毛、无毛)
行为
对象能执行的动作,如猫可以叫,可以跑。
类的定义
public class 类名{
数据类型 变量;
数据类型 变量;
数据类型 变量;
方法1;
方法2;
}
public class Cat{
String name;//初始值为null或0或false或""
int age;
boolean tail;
String color;
public void meow(){
System.out.println("Meow!");
}
public void eat(String food){
System.out.println("Eat "+food);
}
}
对象的使用
//在 main 方法中
Cat c=new Cat();
c.name="小黑";//c 的名字
c.age=2;//2岁了
c.tail=false;//有尾巴
System.out.println(c.age);
c.meow();//行为:猫叫
c.eat("猫粮")//行为:吃饭
在同级目录下,类在一个文件中,main 方法在另一个文件中而且实例化了这个类,也是可以的。
对象名 c 存储在栈内存中(其值代表对象的属性在堆内存中的地址),而对象的属性等具体内容存储在堆内存中。对象中的方法调用时则加载到栈内存中,执行完毕后出栈。
成员变量和局部变量
成员变量:类中在方法外的变量(如上例中的属性变量)
局部变量:在类的方法中或方法声明上的变量。(如上例中 eat 方法声明的 food 局部变量)
成员变量 | 局部变量 |
---|---|
类中方法外 | 方法中,或方法声明上 |
堆内存中 | 栈内存中 |
对象消失时随之消失 | 方法调用完毕而消失 |
有默认的初始值 | 没有默认的初始值,必须先定义、赋值才能使用 |