price 价格 brand 品牌private 私有public 公有的
栈堆内存图//引数传递 传递的是引用类型 传递地址 //返回值 返回的是引用类型 返回的是地址 成员变量和局部变量的区别 定义位置不一样 局部变量:方法内部 成员变量:类内方法外 默认值不一样 局部变量:没有默认值,如果想使用必须先进行赋值 成员变量:有默认值,默认值规则和数组一样 作用范围不一样 局部变量:只有方法内部可以使用,出了方法就不能用 成员变量:整个类都可以使用 内存位置不一样 局部变量:基本数据类型数据直接存储在栈中 引用类型:数据类型存储在堆中,栈中存储对象的地址 成员变量:存储在堆中 生命周期不一样 局部变量:随着方法进栈而诞生,随着方法而消失 成员变量:随着对象的创建而创建,随着对象被垃圾回收而消失 Java中的内存空间 局部变量中,基本数据类型直接存储在栈中,引用数据类型存储再堆中,栈中存储堆中内存的地址栈比较小,存取速度快,堆比较大,存取速度慢程序运行在栈中,数据存储在堆中。栈和堆存储特点: 栈存储的特点:先进后出堆存储的特点:只要有内存就能申请存储栈和堆的释放: 栈释放:方法运行结束就释放堆释放:当栈中引用释放的时候,堆中内存数据就变成了垃圾 等待垃圾回收面向对象的三大特性 封装、继承、多态封装private:私有,只有本类可以访问,类外不能访问提供两个公有的方法,分别访问(get)和设置(set)get格式:setXxx set格式:getXxx 布尔类型get的格式需要变成 isXxxxthis关键字 当方法的局部变量和成员变量名字重复的时候,根据就近原则,优先使用局部变量示例:
public class Phone { //成员变量 String brand; //品牌 private String color; //颜色 private int price; //价格public Phone(String brand,String color,int price) { this.brand = brand; this.color = color; this.price = price; } }构造函数创建对象的方法,系统提供了一个默认构造函数作用:创建对象 初始化变量 语法:public 类名称(参数列表){ 方法体; } 示例:public Student() { //默认构造函数
} 自定义构造函数 public Student(String name, int age, int height) { // TODO 自动生成的构造函数存根 this.age=age; this.name=name; this.height=height; }
**注意事项:**构造函数的名字和类名必须一样构造函数没有返回值,void也不能写构造函数不能return如果没有编写任何的构造函数,编译器提供一个默认的构造函数如果自己编写了构造方法,那么编译器就不提供默认构造方法了。构造方法可以重载。标准类所有成员变量都用private修饰 为每一个成员变量编写一对get/set方法 编写一个无参数的构造方法 编写一个全参的构造方法 完整标准类示例:标准类 1.所有成员变量都用private修饰 2.为每一个成员变量编写一对儿get/set方法 3.编写一个无参数的构造方法