Java面向对象(二)

Java 面向对象(二)

jvm内存分配

  • .java 文件转换成.class 文件 在编译器中完成
  • .class 文件通过类加载器(三种)在内存分配空间
  • jvm 会将内存分为5块:
    • 栈: java栈区域比较小,空间1M ,(存取速度快)在栈中执行的基本上是快速的任务,存放基本数据内容和对象的引用。
    • 堆: new 的对象都存放在堆里面,堆里面的对象都会产生一个唯一的内存地址,内存地址会赋值给栈里面的引用。堆里面的对象需要垃圾回收机制才能销毁(如果要手动销毁,对象= null;)java 堆比较占内存。
    • 方法区 : 也称为静态区,主要存放5类,被所有线程共享:
      • 类(class)
      • 常量
      • 成员方法
      • 静态方法
      • 静态变量
    • pc寄存器(计数器):每个线程都会有一个pc寄存器,主要保存jvm的指令和地址。
    • 本地方法栈:主要用来保存native方法进入区域的地址。
  • 栈和堆:
    • 栈:主要用于存储局部变量和对象的引用变量,每个线程都会有一个独立的栈空间,所以线程之间是不共享数据的。有两种结构:
      • 顺序存储
      • 链式存储
    • 堆:主要用于存储实例化的对象,数组。由JVM动态分配内存空间。一个JVM只有一个堆内存,线程是可以共享数据的

方法:

  • 方法的重载: 在一个类中,方法的名字相同,但是方法的参数个数、方法参数的类型或方法的参数的位置不同,把方法名字相同的方法称为重载方法。
  • 方法的重写: 当子类继承父类,子类与父类方法名称一样,参数类型、参数个数,就称为子类重写了父类方法
    • 作用:父类提供的方法无法满足子类的业务,所以子类可以重写父类的方法来扩展自己的内容。调用方法时,优先调用子类的方法。
    • 规范:
      (1) 子类方法名、返回值、参数个数、位置 都必须跟父类方法一致
      (2)子类的访问修饰符可以跟父类一致,也可以比父类的访问修饰符小(范围小)
      (3)子类重写的方法抛出的异常,不能比父类抛出的异常更多。
    • @override :
      • 表示此方法时重写父类方法
      • 增加代码的可读性
      • 编译器会 更根据标签来检测我们写的代码,子类在重写时不规范。
  • 重写和重载区别:
    • 重写发生在子类与父类之间,重载发生在本类之中
    • 重写扩展了父类的方法,重载表现了相同行为不同的表现方式(多态)

继承

  • 类与类之间的关系:
    • 关联关系: 最弱的一种关系。
    • 继承关系:比较强的一种关系。
    • 聚合关系:比较强的一种关系。聚集和组合,某个是某个的一部分。
    • 实现关系 : 子类要去实现父接口。
  • 语法:class 子类 extends关键字 父类 {}
    class Animal {
    }
    class rabbit extends Animal {
    	// rabbit 称为子类,Animal 称为父类 
    }
    
  • 特性:
    (1)子类继承父类,子类可以拥有父类所有的属性(非私有的属性)和(非私有的)方法.
    (2)子类可以拥有自己的属性和方法,对父类进行了扩展
    (3)子类也可以实现父类的方法
    (4)java的继承是单继承、,子类只能有一个父类。
  • 缺点:
    提高了类与类之间的耦合,代码之间联系非常紧密。

构造方法(构造器)

  • 构造函数:没有返回值、方法名称与类名一致
  • 格式:
    类名() {
    	
    }
    
  • 作用:
    (1)在实例化对象时,首先执行的就是构造器,创建对象。(如果没创建构造器,编译器自动给每个类加上无参构造器)
    (2) 初始化属性,构造器也可以重载。
    (3) 优先创建父类在创建子类对对象

object对象

  • object :是所有java类的基类,默认继承object,创建了任何对象都可以使用object提供的方法。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值