JAVA学习日志4(对象和类)

JAVA 学习日志4

面向对象
在面向对象之前是面向对象的思想,面向对象的思想要落实到每一步具体操作每一步都要亲力亲为,面向对象是把一个功能打包起来,只要输入原料获得预期产出即可,并不需要知道包内如何运转。

  • 面向对象的优点
    1.简化代码,便于后期的维护和扩展

类和对象


  • 类是一组属性和行为的集合,是一个抽象,概括的概念。
    1.类的定义语法 : public class 类名 { 成员变量 成员方法}
  • 对象
    对象是类的一个具体实例
    1.创建对象的语法: 类的名称 对象名 = new 类的名称();
  • 注意事项
  1. 自定义的类,运行之后都会编译一个字节码.clsss文件,存储于方法区
  2. new 到的对象存储于堆内存
  3. 调用类内的方法,访问成员是的语法 对象名.方法名/成员名
  • 一个对象在创建时的内存情况
    1.类的字节码文件存储于方法区中,包含类的全部内容如成员变量,成员方法。这里只存储了成员变量,没有具体的值,static属性除外(这一情况符合类的抽象概念)(字节码文件只加载一次,不是每次创建对象的时候都进行加载)
    2.程序执行时主方法main进栈,执行的创建对象的语句时,在堆内存开辟空间进行存储
    3.堆内存里存储量实例化的类,即对象包含了每一个成员变量的具体值,成员方法存的则是方法的地址,这个地址指向方法区对应类的方法(成员方法可以对于各个对象来讲是相同的,并不需要实例化对象来获取不同的值,所有这里存地址)
    4.栈内存里存储的是这个对象在堆内存中的地址

成员变量和局部变量区别
1.成员变量是定义在类里的而局部变量是定义在方法里的。
2.成员变量存储于堆内存而局部变量存储于栈内存
3.成员变量的作用域是整个类而局部变量的作用域是所在方法
4.成员变量的生命周期是随着类的创建而开始,类的销毁而结束的。局部变量的生命周期是随着方法的调用而开始,方法的结束而结束。
5.成员变量都有默认值 局部变量 必须是先赋值之后才能使用 没有默认值

匿名对象
顾名思义没有名字的对象

  • 匿名对象的用处
  1. 对象的方法只需要调用一次的时候 就可以使用匿名对象 匿名对象 可以节省内存空间,如:在这里插入图片描述
  2. 对象做为方法的参数时可以使用匿名对象,如:在这里插入图片描述
  3. 对象作为返回值时可以使用匿名对象,如:在这里插入图片描述
    封装
    对属性进行隐藏 对方法里的内容进行隐藏(对具体的操作来进行隐藏)
  • 封装的优点:
    (1) 隐藏方法内部的系统 或者是隐藏属性
    (2) 提高代码的安全性
    (3) 提高代码的复用性
  • 封装的原则
    (1) 隐藏内部的属性
    (2) 提供公有的对外方法
  • 封装的两种体现形式
    (1) 使用关键字 private 属性(成员变量)
    (2) 对方法进行抽取 方法
  • 对成员变量的封装:
    1.把成员变量用 private 进行修饰
    2.设置两个对外的 public 方法 getXXX(); setXXX();来对外提供成员变量的值,或者给成员变量进行赋值(eclipse 里弹出 快速生成这类方法的快捷键是 alt +shift +s)

变量的就近原则和this关键字

  • 就近原则
    变量在调用时,调用的是离当前变量最近的方法,如果最近的方法没有找到
    就会继续往上进行查找,如果一直找不到就报错
  • this作用:
    1.主要为了解决变量名重名的问题 (语法:this.变量名)(如:方法里和类中同样的变量名name,根据就近原则 name指的是方法里的name,需要访问对象中的那么name时,需要this.name)
    3.this的具体值其实是一个地址,指向所在对象

构造方法
语法:访问修饰符 类名(参数列表){ }
在这里插入图片描述

  • 注意事项
    1.构造函数没有返回类型
    2.构造函数可以进行重载
    3.当类里没有写构造函数时,在创建对象时会自动生成并执行一个无参构造函数。如果类里定义了构造函数,在创建对象是则不会自动生成无参构造函数
    4.不能通过对象名来调用构造方法
    5.构造方法只能调用一次 (即在类的创建时就会调用构造函数)

  • 对象创建的时候执行流程
    默认进行赋值 ==> 创建好对象后会先给每个数据类型的变量一个默认值(其实目的是防止变量没有初始化就拿去使用)
    构造方法来进行赋值 ==> 在实例化对象的时候给其进行赋值
    显式进行赋值 ==>直接给成员变量进行赋值,如:在这里插入图片描述
    顺序 :默认 ==> 显式 ==> 构造方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值