java学习(Day7)

new创建对象做的三件事情:

  • 1.在堆中为对象开辟空间,成员属性会跟随对象进入到堆内存并赋默认值
  • 2.调用构造器为对象初始化信息
  • 3.将地址返回值引用
  • 构造器|构造方法|构造函数:
  • 构造器是一个特殊的方法,只能和new一起使用
  • 作用:
  •  初始化对象信息,不是用来创建对象的
    
  • 定义:
  •  构造方法的名字必须与当前的类名一致 ,不需要返回值不需要void
    
  •  修饰符 类名([参数列表]){
    
  •  	...
    
  •  }
    
  • 如果没有自定义构造器,编译器会自动为你添加空构造(不带参数的构造器)
  • 如果存在自定义构造器,编译器这时不会再提供任何构造器,包括空构造
  • 构造器是方法,方法就可以构成方法的重载
  • 调用不同的构造器,看创建对象时候()中的参数列表匹配哪一个构造器的参数列表
  • 修饰符可以是private,私有的,只能在本类中使用(单例)
  • 构造器不能使用final,static,abstract修饰
  • 总结:特殊的方法,只能通过new的使用使用,可以重载没有返回值和void,区分重载构造器看new后()的参数

this
指代当前new的对象,存储的就是当前对象的地址

  • 1).在构造器的首行通过this调用当前其他构造器
  •  this();  -->()匹配构造器的参数
    
  • 2).区分同名成员变量和局部变量
  •  如果不使用this,会发生就近原则 
    
  •  在构造器中,this指代当前new的对象
    
  •  在方法中,this指代当前调用成员方法的这个对象
    
  •  如果不存在同名变量的问题,默认省略this.
    
  •  如果存在同名变量的问题,默认就近原则,区分成员,this.,this.不能省略
    
  • 注意:
  • 1.在构造器的首行调用其他构造器时候不能相互调用
  • 2.如果不使用,会发生就近原则
  • 3.this不能使用在static修饰的方法中

static 关键字 静态的

  • static修饰变量|静态变量|类变量,只能修饰成员变量,不能修饰局部变量
  • static修饰方法|静态方法|类方法
  • static修饰的内容的使用方式:
  •  				1.类名.
    
  •  				2.对象.
    
  • 注意:
  •  静态的内容是属于类的,成员的内容是属于对象的
    
  •  静态的内容是独一份的,这个类的所有对象共享这个类中的静态内容
    
  •  在静态的内容中只能直接使用静态的内容,不能直接使用成员的内容==>对象使用
    
  •  非静态的内容中,可以直接使用成员的内容,可以直接使用静态的内容
    

块 block–>{} ==>自成作用域
*{}–>方法中,局部代码块|普通语句块 执行时机:调用方法
*{}–>类中方法外,构造块 执行时机:创建对象
*static{}–>静态块
*

  • 1.构造块先于构造器执行,如果有多个构造块,从上到下一次执行
  • 2.静态{}在第一次加载类的时候只执行一次,先于主方法执行,如果有多个静态块,从上到下一次执行
  • 静态块 — main —构造块—构造器

构造块在编译的时候会被放在构造器语句块中代码的最上面,如果存在this调用其他构造器,必然先调用其他构造器,因为this必须存在于首行才能调用其他构造器

使用debug调试:

  • 1.先打断点
  • 2.debug模式运行 f5进入细节 f6下一步执行 f7返回方法的调用出

System.gc() 通知系统回收,但是无权决定是否回收,什么时候回收
*

  • finalize() 在垃圾回收机制来回收垃圾第一步会调用的方法
  • 一定会调用finalize()方法的两种情况:
  •  					1.匿名对象
    
  •  					2.对象无引用状态
    

注意:不要定义与 jdk 相同的包,相同的类, 否则会引起很多问题
*

  • 导包: 模糊匹配 *
  • 会拖慢编译效率,不会拖慢运行速度
  • 静态导入:单独导入类中的静态的内容
  •  可以导入变量可以导入方式
    

为了解决安全隐患:在外部不能直接使用对象的属性

  • 新的关键字 private 私有的 成员修饰符,不能修饰局部变量
  • 私有的内容只能在当前类中使用
  • 如何使用私有的属性:
  • 对使用的属性提供公共的访问方式 setter设置器 getter访问器
  • 面向对象的三大特性之一:
  • 封装:对外隐藏内部的实现细节,提供公共的访问方式就是封装
  • 属性私有,公共的访问方式是封装的一个具体的体现(不能说封装是私有)
  • 类,方法都是封装的体现
  • 以后写模板类,属性都要私有,提供公共的访问方式
  • 这种模板类|实体类|javabean
  • 1.类是公共的public修饰
  • 2.至少存在一个空构造
  • 3.属性私有
  • 4.公共的访问方式

抽取对象的共性定义为类

  • 抽取类的共性定义为父类
  • 为什么使用继承:
  • 为了提高代码的复用性
  • 如何使用继承(子承父业:拓展+延续):
  • 子类 extends 父类 子类继承父类
  • 使用继承优点:
  • 1.提高代码的复用性
  • 2.自动可以使用父类中的所有成员(属性和方法)
  • 3.子类可以定义属于自己的属性和功能–>扩展
  • 特点:
  • 父类可以有多个子类,但是一个子类只能有一个父类–>单继承
  • 单继承的优点:
  • 使用简单
  • 单继承的缺点:
  • 不便于后期维护
  • 父类|基类|超类
  • 子类|派生类

猜你喜欢

转载自blog.csdn.net/TTsuper1/article/details/90072734
今日推荐