面向对象------类

DAY4

我们看现实生活中的任何一个事物,都可以看成一个对象,都可以将任何一个事物中的行为和属性抽取出来,抽取出来的这个是某一类事物的总体特点和行为,具体到某一个具体的事物才是一个对象,抽取出来的这一类事物叫做类
就比如我说人有耳朵和鼻子,都能吃饭,这是泛指,可以封装成一个类;
比如我自己就是一个具体的对象;
比如造房子的一张图纸可以理解为一个类;
依照图纸盖出来的房子可以理解为一个具体的对象;
我们这个面向对象的思想就是将现实生活中的行为和特点抽取出来,然后封装到类中,然后再通过创建对象的方式去体现
定义一个类:
在这里插入图片描述
案例:
在这里插入图片描述
Java中最小的单位是类
栈:存放的都是局部变量,不会为变量赋值,方法的执行都是在栈中;
堆:存放的都是new出来的东西,会为变量赋值,引用变量的初始化值都是null,基本数据类的值就是我们以前说的默认值
方法区:现阶段,我们只需要知道类的字节码文件是存放在方法区中的class区。方法区种存放的都是唯一的东西,方法区里面还有一个static区,在创建对象时,在方法区中的字节码文件中的没有被static修饰的成员变量会在堆中拷贝一份,方法还是存放在方法区种的class区中,堆中存放的是方法的地址值,当需要调用方法时,会根据地址值将方法加载到栈中执行
一个对象在内存中的初始化图解如下:
在这里插入图片描述
两个对象在内存中的初始化图解:
在这里插入图片描述
三个对象在内存中的初始化图解:
在这里插入图片描述
成员变量和局部变量的区别:
如果成员变量和局部变量同名的话,使用的原则是就近原则

  • 类中的位置
    成员变量定义在类中,方法外
    局部变量定义在方法内部或者参数列表上
  • 内存中的位置
    成员变量放在堆内存中
    局部变量放在栈内存中
  • 生命周期
    成员变量随着对象的创建而存在,随着对象的消失而消失
    局部变量随着方法的调用而存在,随着方法的调用完毕而消失
  • 初始化值
    成员变量有初始化值
    局部变量必须我们自己手动赋值
    注意事项:
    基本数据类型作为实参传递时,形参的值改变不影响实参的值;引用数据类型作为实参传递时,形参的值改变影响实参的值
    匿名对象:
    定义:没有名字的一个对象
    如:定义一个Test类,new Test()就是匿名对象
    使用场景:
  • 当需要调用一个类中的方法而且仅仅需要调用一次时
  • 当类的对象作为实参传递时,可以使用匿名对象
    Java三大特征
    1、封装
    定义:就是隐藏类的属性和实现细节,仅对外提供公共的访问方式
    封装的好处:
  • 解决代码安全问题
  • 提供代码的复用性
    什么时候使用封装?
    当类的成员变量设置存在安全风险时候,可以提供一个公共的访问方法用于设置这个成员变量
    private修饰符关键字:表示私有的意思,可以修饰成员(成员变量和成员方法),被private修饰的成员只能在类中访问
    封装的基本步骤:
  • 一般情况下封装是将不需要向外部暴露的实现细节用private修饰,然后提供setXXX和getXXX方法
    this关键字:
    this所在的方法正在被哪个对象调用,this就代表该对象
    一般在封装属性的时候,会在设置属性值的时候,将参数的名称和属性的名称一致,然后再用this来明确表示该属性
    案列图解:
    在这里插入图片描述
    构造函数:
    定义:构造函数一般是用于初始化数据,在创建对象的时候就传递一些数据进去
    构造方法格式:
  • 没有返回值类型,连void都没有
  • 构造方法的名字和类名一致
  • 不能使用return返回一个具体的值,但是可以使用return用于结束构造方法
    特点:
  • 构造方法是可以重载的
  • 如果我们自己没有定义构造方法,系统会默认给出一个空参的构造方法,一旦我们自己定义了构造方法,系统将不再提供。
    成员方法:
    返回值类型:
  • 有明确返回值的方法
  • 返回值为void的方法
    参数列表:
  • 有参成员方法
  • 无参成员方法
    标准的JavaBean:
  • 成员变量
  • 构造方法
    无参构造方法
    有参构造方法
  • 成员方法
    setXXX
    getXXX
    打印所有成员变量的方法等等
    设置成员变量的方式:
  • 使用构造方法
  • 使用setXXX方法
    案例解析:
    一个标准JavaBean在内存中的图解:
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36633450/article/details/83999833