java学习笔记--类和对象

类和对象

  • 语法
  • 内存模型
  • 面向对象的好处 / 如何设计类
  1. 语法
     1. 定义类
      【限定符】 class 类名称(ClassName) 【基类的定义】【接口的定义】{
          1. 属性
          2.构造方法
          3.方法(要区分静态方法和方法)
          }
     2. 定义属性
        【限定符】数据类型 属性名称
     3.构造方法
        【限定符】方法名称(必须和类名一样)(参数列表)【异常】{   //初始化部分   }
         构造方法经常用到重载技术
         1. 如果没有明确给出构造方法,可以认为java编译默认给一个 public 类名称(){}
        2.如果显示的给出了构造方法,默认的构造方法就没有了
     4. 定义方法
         【限定符】返回值 方法名称(参数列表)【异常列表】{   方法实现   }

  2. 利用类构造对象的方法
      1. 类类型的变量
         class A{}
         A 变量名;   //没有初始化
         A 变量名=null;  //初始化,但没有构造对象
      2.变量名= new 构造方法(实参列表)

  3. 如何使用对象
      对象.属性;   对象.方法(实参列表);
      使用匿名对象
         new 构造方法().属性;
         new 构造方法().方法(实参列表);

  4. 访问限定符
      没有明确理由的情况下,统统使用private
      1.顶级使用前景  修饰外部类
         public/不写(包私有)
      2.在成员级别   修饰属性、方法、内部类
         public/protectde/不写(包私有)/private
      3.一个java源文件只能有一个public的外部类,类名称和文件名一样

在这里插入图片描述

  1. 内存模型的理解
      1. 把java内存分成三个区域(堆、栈、方法区
         或者简单看成两个区(栈、堆)
      2. 局部变量、形参   在栈区
         生命周期(空间的有效期)是伴随方法的执行结束而消亡的
      3. 方法区
         类的信息、方法的代码
      4. 堆区
         对象(属性)
  2. 对象构造
      1.当对象没有引用指向它时,这个对象被视为垃圾对象,随后会被垃圾回收站回收
         GC(Garbage Collector)
         GC做的再好,也是有性能损耗的,注意不要过多产生无用对象
      2.调用对象的方法,可以想象成
         object.method();   method(object);
         调用方法时,想象成会传入一个对象作为饮食的参数
      3. 构造对象的过程
         A a=new A(…)
           1.创建一个引用变量
           2.计算对象所需内存的大小,从JVM申请内存(空间),数据未初始化
           3.构造方法负责将申请出的内存空间初始化
  3. 命名遮挡(Name shadow)
      局部变量、形参或者其他,与属性、方法或者其他重名,导致直接通过名字访问出现歧义
  4. 关键字this
      1. 通过 this 全名称访问属性、方法
      2. 通过 this 调用其他构造方法
         但 this 调用,必须出现构造方法第一行
      3. this 代表的就是这个对象本身
  5. static 关键字的用法
      1. 修饰属性
      2. 修饰方法
      3. 修饰内部类
      4. 静态代码块
      5. import static 包
      最核心一点,static 和对象解绑
  6. 静态属性
      1. 存放在类(方法区)
      2. 如何访问静态属性
         1. 在类内部,以名称直接访问
         2.在类外部,Person.createdCount
  7. 静态方法
      语法: 【访问限定符】static 返回值 方法名(参数列表)…
      public static void main(String[] args){}
      因为没有隐式对象
         1. this 关键字不能用
         2. 对象的普通属性不能访问
         3. 无法调用普通方法
      调用静态方法
         1. 内部    直接调用
         2.外部/内部    类名称.方法(…);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值