java笔记------面向对象()

本文深入讲解Java中的关键概念,包括方法签名、重载与重写、构造方法、this与super关键字、内存管理、继承、向上转型、静态成员及final修饰符等。同时介绍了包、导入声明、访问控制修饰符、静态成员、内部类与匿名内部类等内容。

一.方法签名=方法名+参数列表


二.方法的重载(overload):
  1)一个类中,方法名称相同,参数列表不同,称方法的重载
  2)编译器在编译时,自动根据方法的签名绑定调用不同的方法


三.构造方法:
  1)给成员变量赋初值
  2)与类同名,没有返回值类型
  3)在创建(new)对象时被自动调用
  4)若不写构造,则系统默认提供一个无参构造,若手动写构造,则不再默认提供。
  5)构造方法可以重载


四.this关键字:
  1)指代当前对象,哪个对象调指的就是哪个对象,方法中访问成员变量,默认有个this.。
  2)用法:
    2.1)this.成员变量名---------访问成员变量
    2.2)this.方法名()-------------调用方法(几乎不用)
    2.3)this()-----------------------调用构造方法

 

五.内存管理:由JVM来分配并管理------了解为主
  1)堆:
    1.1)用于存储new出来的对象(包括成员变量)
    1.2)成员变量的生命周期:创建对象时存在,对象被回收时消失。
    1.3)垃圾回收器(GC)用于回收没有任何引用指向的对象
    1.4)GC不定期回收,而回收的过程中透明的,若想快一些,调用System.gc()
    1.5)内存泄露:不再使用的对象没有被及时的回收
  建议:不再使用的对象将其引用及时的设置为null
  2)栈:
    2.1)用于存储所有的局部变量
    2.2)局部变量的生命周期: 方法被调用时存在,方法执行结束后消失。
    2.3)调用方法时,在栈中为该方法分配对应的栈桢,栈桢中包含方法中所有的局部变量(参数+变量),方法执行结束后,栈桢被清除,局部变量随之消失。
  3)方法区:
    3.1)用于存储.class字节码文件以及方法
    3.2)方法只有一份,存在方法区中,通过this来区分不同的对象。

 

六.继承:
  1)作用: 代码的重用
  2)通过extends实现继承
  3)父类/基类:所有子类所共有的变量和方法
   子类/派生类:子类所特有的变量的方法
  4)当子类继承父类后,子类具有:------子类所特有的+父类所共有的
  5)一个类只能继承一个父类----单一继承,一个父类可以有多个子类
  6)继承具有传递性
  7)java规定: 构造子类之前必须先构造父类,子类构造方法的第一句默认有个super()调父类的无参构造。若自己通过super调用父类构造的话,则不再默认提供。super调用父类构造,必须位于子类构造的第1句。


七.super:指代当前对象的父类对象
用法:
  1)super.成员变量名------访问父类的成员变量
  2)super.方法名()-----------调用父类的方法
  3)super()---------------------调用父类的构造方法


八.向上造型:
  1)父类型的引用指向子类的对象
  2)能点出来什么,看引用的类型


九.方法的重写(override):发生在父子类中,方法名相同,参数列表相同,方法体不同。重写方法被调用时,看对象的类型。

  1)父子类中,方法签名相同,方法体不同
  2)重写方法被调用时,看对象的类型
  3)遵循"两同两小一大"规则:
    3.1)两同:方法名相同,参数列表相同
    3.2)两小:子类的返回值类型小于或等于父类-----一般都是等于
      3.2.1)返回类型为void时,必须相同
      3.2.2)返回类型为基本类型时,必须相同
      3.2.3)返回类型为引用类型时,需小于或等于,子类抛出的异常小于或等于父类。
    3.3)一大:子类的访问控制权限大于或等于父类


十.重写与重载的区别---常见面试题
1)重写:父子类中,方法名相同,参数列表相同
   遵循"运行期"绑定,看对象的类型调用方法
2)重载:一个类中,方法名相同,参数列表不同
   遵循"编译期"绑定,看引用的类型绑定方法
十一.package:包
1)作用:避免类的命名冲突
2)包名可以有层次结构,类完全限定名: 包名.类名
3)建议:包名所有字母都小写

十二.import:声明类/引入类
  1)语法: import 包名.类名
  2)同一包中的类,可以直接访问
  3)不同包中的类,有两种访问方式:
    3.1)完全限定名-----繁琐(不建议)
    3.2)先import声明类,直接用类名-----建议


十三.访问控制修饰符:
1)public:公开的,任何地方
2)private:私有的,本类
3)protected:受保护的,本类、子类、同包类
4)默认的:什么也不写,本类、同包类
说明:
1)类的访问控制: public,默认的
2)类成员的访问控制: 如上4种都可以
建议:
数据(变量)私有化(private),行为(方法)公开化(public)

 

十四.static:静态的
1)静态变量:
  1.1)由static修饰
  1.2)属于类的,存在方法区中,只有一份
  1.3)常常通过类名.来访问
  1.4)何时用:所有对象的数据都一样时使用时
2)修饰方法:静态方法
  2.1)由static修饰
  2.2)没有隐式this传递,不能直接访问实例成员
  2.3)常常通过类名.来访问
  2.4)何时用:方法的操作仅与参数相关而与对象无关时使用
3)块:静态块
  3.1)类被加载期间自动执行,只执行一次
  3.2)何时用: 初始化静态资源(图片、音频、视频等)


十五.final:最终的(不可改变)
1)修饰变量:变量不能被修改
2)修饰方法:方法不能被重写
3)修饰类:类不能被继承

 

十六.内部类: ----此写法了解
1)类中套类,外面的类叫外部类,里面的类叫内部类
2)内部类通常只服务于外部类,对外不具备可见性
3)内部类对象通常只在外部类中创建
4)内部类中可以直接访问外部类成员(包括私有的)
5)内部类中隐式的引用指向创建它的外部类对象
----------外部类名.this (Mama.this Outer.this)


十七.匿名内部类:----掌握
1)想创建一个类的对象,并且对象还只创建一次,
这个类就没有意义了,此时,该类不必命名,
称之为匿名内部类

 

转载于:https://www.cnblogs.com/yuer629/p/7443222.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值