类与对象
类
属性:一个事物的描述信息
行为:该事物能做什么
定义类其实就是定义类的成员(成员变量和成员方法)
- 成员变量:和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。
- 成员方法:和以前定义方法是一样的,只不过把static去掉。
事物 | 类 |
---|---|
属性 | 成员变量 |
行为 | 成员方法 |
类和对象的概念
类:是一组相关的属性和行为的集合
对象:是该类事物的具体体现
类的使用
- 文件名问题
在一个java文件中写两个类:一个基本的类,一个测试类。
建议:文件名称和测试类名称一致。 - 如何使用
创建对象使用。 - 如何创建对象
格式:类名 对象名 = new 类名(); - 如何使用成员变量
格式:对象名.变量名 - 如何使用成员方法
格式:对象名.方法名(…)
public class Phone {
//成员变量
String pinPai="小米";
double price;
String color;
//成员方法
public void call(String name){
System.out.println("给"+name+"打电话");
}
public void sendMsg(String name,String content){
System.out.println("给"+name+" 发信息:"+content);
}
}
public class MyTest {
public static void main(String[] args) {
Phone phone = new Phone();
String pinPai = phone.pinPai;
double price = phone.price;
String color = phone.color;
System.out.println(pinPai);
System.out.println(price);
System.out.println(color);
phone.call("妈妈");
phone.sendMsg("爸爸","快点回家吃饭");
System.out.println("============================");
Phone phone1 = new Phone();
phone1.pinPai="华为";
phone1.price=4000;
phone1.color="白色";
System.out.println(phone1.pinPai);
System.out.println(phone1.price);
System.out.println(phone1.color);
phone1.call("老师");
phone1.sendMsg("妈妈","今天吃啥");
}
}
一个对象的内存图
两个对象的内存图
三个引用两个对象的内存图
成员变量与局部变量的区别
成员变量 | 局部变量 | |
---|---|---|
在类中位置 | 在类中方法外 | 在方法定义中或者方法声明上 |
在内存中位置 | 在堆内存 | 在栈内存 |
生命周期 | 随着对象的创建而存在,随着对象的消失而消失 | 随着方法的调用而存在,随着方法的调用完毕而消失 |
初始化值 | 有默认初始化值 | 没有默认初始化值,必须定义,赋值,然后才能使用。 |
注意:局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。即先在局部位置找(方法的范围内)。如果找到就使用,如果没有在局部范围找到,会去成员范围找,找到就使用。