java学习笔记——–对象与类

1、类 与 对象

  1. 类(class)对象(Object)是面向对象核心概念。
  2. 类是对一类事物的描述,是抽象的、概念上的定义
  3. 对象是实际存在该类事物的每个个体

2、对象内存解析

(1)堆(Heap):此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。(JVM规范描述:所有对象实例以及数组都在堆上分配)

(2)虚拟机栈(stack):用于存储局部变量等。局部变量表达存放类编译期可知长度的各种基本数据类型(byte、short、int、long、double、float、boolean、对象引用)。方法执行完自动释放。

(3)方法区:用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译后的代码等数据。

3、属性与局部变量的对比

(1)不同点:

  1. 属性直接定义在类的一对{}内,而局部变量声明在方法内、方法形参、代码块内、构造器内部的变量。
  2. 属性可以在声明时指明权限问题,局部变量不可以使用权限修饰符。
  3. 属性加载到堆空间中的,而局部变量加载到栈空间。

4、方法重载(OverLoadTest)

(1)重载概念

  • 在同一个类中,允许存在一个以上同名方法,只要它们的参个数或者参数类型不同即可。

(2)方法参数的值传递机制

  1. 如果参数是基本数据类型,此时实参数赋给形参真实存储的数据值。
  2. 如果参数是引用数据类型,此时实参数赋给形参真实存储的地址值。

(5)递归方法的使用

  1.   递归方法:一个方法体内调用它自身
  2. 方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无必循环控制
  3. 递归一定要axing已知方向递归,否则这种递归就变成了无穷递归,类似死循环。

 

public static int getSum(int n) {
        if (n == 1) {
            return 1;
        } else {
            return n + getSum(n - 1);
        }
    }
    public static int getSum1(int n) {
        if (n == 1) {
            return 1;
        } else {
            return n * getSum(n - 1);
        }
    }

5、构 造 器

  • 构造器作用:创建对象

6、JavaBean

  1. JavaBean是一种Java语言写成的可重用组建
  2. 所谓JavaBean,是符合以下标准的Java类
  3. 类是公共的
  4. 有一个无参的公共构造器
  5. 有属性,且有对应的get、set方法

请登录后发表评论

    没有回复内容