day10

变量 : 存储数据,方便操作
 变量声明 : 数据类型 变量名 = 值;
 数据类型 : 基本和引用 , 引用 : 类,数组,接口
   所有引用类型,都可以赋值为null
 整数 : 默认0 , 小数 : 默认0.0 , 布尔 : 默认false , 字符 : 默认 \u0000 , 引用 : 默认 null
  创建了一个OOP_01类型的变量 , 并且创建了一个OOP_01的对象,把该对象的内存地址,赋值给o这个变量
     实例化步骤 : 
 1 把类加载对静态区
 2 new 会在堆内存创建内存空间
   3 调用构造方法,对该空间进行初始化操作,把成员属性复制到该空间中
  4 构造方法执行完弹栈,最后把堆内存对象的地址,赋值给变量o

 每new一次 都会创建一个全新的对象

静态区 : 保存静态资源文件,包括class文件,变量,方法等 还有常量池
 栈内存 : 执行方法
 堆内存 : 保存对象,每个对象空间分为三块 : 1  数据部分  , 2 头部  , 3 类型,是哪个类实例化而来的

JavaBean : JavaBean是公共Java类,但是为了编辑工具识别,需要满足至少三个条件:有一个public默认构造器(例如无参构造器,)属性使用public 的get,set方法访问,也就是说设置成private,同时get,set方法与属性名的大小也需要对应。例如属性name,get方法就要写成,public String getName(){},N大写。需要序列化。这个是框架,工具跨平台反映状态必须的最近看<Think in Java>,里面讲到JavaBean最初是为Java GUI的可视化编程实现的.你拖动IDE构建工具创建一个GUI 组件(如多选框),其实是工具给你创建java类,并提供将类的属性暴露出来给你修改调整,将事件监听器暴露出来.

EJB : 在企业开发中,需要可伸缩的性能和事务、安全机制,这样能保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系统。 然后有提高了协议要求,就出现了Enterprise Bean。EJB在javabean基础上又提了一些要求,当然更复杂了。

POJO :  有个叫Josh MacKenzie人觉得,EJB太复杂了,完全没必要每次都用,所以发明了个POJO,POJO是普通的javabean,什么是普通,就是和EJB对应的。      总之,区别就是,你先判断是否满足javabean的条件,然后如果再实现一些要求,满足EJB条件就是EJB,否则就是POJO。

1、所有属性为private
 2、提供默认构造方法
 3、提供getter和setter

当我们使用null值,去调用 成员 属性的时候,会报出空指针异常

不会出现错误,因为 i 是静态属性,压根和堆内存没有关系
 当我们使用 引用类型变量调用 静态属性的时候,在编译时就会把该变量转换为对应的类名去调用
      局部变量可以和静态变量及成员变量同名

 一个作用域中 不可以有同名的变量

 想要使用静态变量,需要使用类名区分

  成员方法和构造方法可以同名,需要使用返回值区分
 因为构造方法,没有返回值,连void都没有
而成员方法,有返回值,不需要返回数据也必须写void的

this : 是每个对象中保存自身内存地址的一个引用类型的成员变量
  this 就表示这个对象自己,相当于我们说 "我" 一样
  this能干什么? 
        1 用在成员方法和构造方法中,可以区分同名的局部变量和成员变量 语法 : this.xxx = xxx; 
      2 用在某个构造方法中
  用于重载调用当前类中的其他构造方法,提高代码重用 语法 : this(参数) ; 必须写在构造方法第一行 
 3 return this; 可以做到链式调用
  核心原理 : 前者的返回值,一定是可以调用后者的引用
  在一个成员方法中,哪个对象调用的这个方法,this就是哪个对象

在构造方法中 使用this(参数) 可以重载调用当前类的其他构造方法 提高代码重用
  但是必须写在构造方法第一行
 

 链式调用
 前者的返回值,一定是可以调用后者的引用

重载调用 上面的有参构造,做到代码复用 但是 该语句 必须在构造方法第一行

static : 是个修饰符,用来区分静态和成员
  可以修饰三个东西 : 静态变量 , 静态方法 , 静态语句块
          静态变量 : 类体中使用static修饰的变量
         静态方法 : 使用static修饰的方法
        静态语句块 : 使用static修饰的代码块(语句块) 
             一个大括号 就是一个语句块
      语法 : 
          static { 
            java代码
      }
  在类加载阶段执行,加载完成就立刻执行,在main之前执行,并且只执行一次
       由于最先执行并且只执行一次,所以适合做一些准备初始化操作

 实例语句块 : 可以看做没有名字的成员方法
 每次创建对象,都会执行一次,多个从上往下执行
  语法 : { 代码; }

静态变量 也是在类加载阶段初始化的,和静态语句块优先级一致,从上往下初始化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值