java 学习笔记《一》

OOP的本质:以类的形式组织代码,以对象的形式组织数据。

1、对象具有行为、状态和标识。

2、java语言使用的字符集:Unicode字符集,该字符集具有65535个字节,可以表示任意字符。
3、标识符
    定义:由字母、数字、下划线、$等字符组成的字符序列。
    作用:用来表示变量名、方法名、类名、接口名等
    规则:
        > 不能以数字开头
         > 可以包含数字、字母、货币符号、汉字等
         > 长度不限,但是最好不要过长
         > 不能包含空格,分号,逗号,单引号,双引号等
         >  java关键字(保留字)不能被用来作为标识符
         > 尽量不使用内置类名
          > java 标识符严格区分大小写

4、java 三大特征:继承、封装、多态

    继承(inherit)

        关于继承:

                         > 提高代码的复用性;

                         > 类是对象的抽象,继承是对某一批类的抽象,从而实现对现实世界更好的建模
                         > 关键字 extends  

                        > java中 只存在单继承(只有一个直接父类),避免了c++中多继承的复杂性,

                            多继承可以通过实现接口来实现。

                         > 除了 继承外,组合也可实现代码的复用,但是从建模角度看 ,继承为 is-a 的关系,

                            组合为has a的关系。但是代码设计中尽量采用组合的方式产生新类型,否则过多的使用继承,

                            会使代码设计过于复杂。

                           > 继承破坏封装
  封装
        目的:高内聚,低耦合
                > 高内聚-----内部数据操作细节自己完成,不允许外部干扰
                > 低耦合-----仅暴露少量的方法给外部使用

        封装要点:

                 > 一般成员变量全部使用private修饰,常量或static修饰的类变量,使用public    

                > 提供相应的set/get方法访问相应属性,(boolean变量的get方法为is开头)

               > 本类中的辅助性类,使用private

多态(polymorphism)
        关于多态:
                 > 多态指方法的多态,字段、静态方法不存在多态
                > 产生多态的三个必要条件:继承、方法重写、父类引用指向子类对象
                > 引用变量类型:
                        编译时类型---由声明时的类型决定
                        运行时类型---由实际对象类型决定
                > 通过对象调用字段,在编译时就已经确定要调用哪块内存中的数据,
                     所以字段不存在重写,多态中,字段不存在多态。
                 > 方法在运行时必须压入堆栈,故而此时才可以知道具体调用方法是哪一个
                 > 可以使用 instanceof 关键字 判断对象类型
                 > 多态的特点:运行时,调用子类方法。
                 > 多态的好处 :统一行为,方便编码。提高代码复用及可维护及扩展性。

5、this 和super

       普通方法中,会隐式传递this,super,即当前对象引用直接父级对象引用作为参数;

    this总是指向正在调用该方法的对象;
       在构造方法中,this常用于初始化参数
     通过this调用其他构造方法,或super调用父类构造方法,必须放在第一行
       可以通过super 调用被子类重写的方法
       若子类方法中,存在一个和父类中相同的静态方法,那么这种现象为隐藏,非重写
        故在多态时,父类引用调用对应静态方法时,若二者中皆有同样的静态方法,应该慎重调用。
6、static关键字

       类变量或静态变量:使用static关键字修饰的变量

      类方法或静态方法:使用static关键字修饰的方法

      注意事项:
    > 类变量或方法属于类, 共享于类的所有对象( 即使使用对象调用,编译后,底层依然使用类调用静态成员或方法。
       > 方法中调用时,不需要传递对象引用即可调用静态方法;故而静态方法中,不可以直接调用非静态方法
       > 同样静态方法中不可直接调用非静态变量,必须通过 对象.属性的方式调用
       > static 修饰的成员,在类字节码文件被加载时就存在于内存中
       > static 修饰的成员优先于对象的存在
7、final 关键字

       使用final修饰符的原因:继承破坏了封装特性,使已经隐藏的东西不再隐秘

       构造器不可以被final修饰。因为构造器是不可以被继承的,都是最终的。

       常量:

            final 修饰的变量

                > 必须显示的初始化值

                > 修饰的基础类型变量,不在可以赋予其他值

                > 修饰的变量所有单词大写,若含有多个单词,则使用下划线隔开。

                > 变量的对象引用不可变,但是引用所对应的值可以变化

                        例:final int[] a=new int[3];
                                        a[1]=2;
                                        a[1]=3;
                       a 所指向的内存地址不再可变,对应内存地址中对象的值 是可以变化的 。
     final 修饰的方法
                > 不可以被重写,但是可以被重载
                > 可以考虑使用final修饰的方法:
                    >>父类中提供的算法骨架,不允许子类修改的方法。模板设计模式
                    >>在构造器中调用的方法,一般使用final修饰。
    final修饰的类
             > 不可以被继承
            > 以下情况考虑使用final修饰类
                >>处于安全考虑不能修改的类
                >>确信某类不会被扩展
                >>不是为继承而设计的类
    唯一可以用于局部变量的修饰符。




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值