java基础第一篇

作者: Mr_欢先生 | 来源:发表于2017-09-22 20:33 被阅读75次

    一.对象和对象的引用

    • 对象:

    万物皆对象是Java设计之初的理念之一,每个对象都是某个类的一个实例,创建一个对象new User("小明")。例如你就是一个对象,就是人这个类的一个实例。

    • 对象的引用:

    User user = new User("小明");其中的user就是指向User类的对象的引用。

    User user;
    user = new User("小明");
    user = new User("李四");
    

    上述代码说明,一个User类的引用可以指向任何一个User类的实例 。

    User user = new User("张三");
    User user2 = user;
    

    上述代码说明一个对象可以被多个引用所指。

    二.Java的三大特性

    • 1.封装

    属性用来描述同一类事物的特征,方法是这一类事物可做的操作,封装就是把属于同一个类的共性包括属性和方法归在一个类中。
    封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系

    • 2.继承

    一个类继承另一个,继承的类称为子类,被继承的类称为父类。继承后子类自动拥有了父类的属性和方法(私有属性除外),子类可以重写父类的方法,及命名与父类同名的成员变量。Java不支持多重继承,一个子类只能继承一个父类。

    • 3.多态

    多态又分为设计时多态和运行时多态,例如重载又被称为设计时多态,而对于覆盖或继承的方法,JAVA运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称为运行时多态。

    三.内存

    User user = new User();
    User user2 = new User();
    user.name = "张三";
    user2.name = "李四";
    

    四.访问控制和继承

    • 父类声明public方法,在子类中也必须为public
    • 父类声明protected的方法在子类中要么声明为protected要么声明为public,不能声明为private。
    • 父类声明private的方法,不能被声明。

    五.非访问修饰符

    • 1.static修饰符
      • 静态变量:
        static关键字用来声明独立于对象的静态变量,无论实例化多少对象,静态变量只被拷贝一次,静态变量也称为类变量,局部变量不能为静态变量。
      • 静态方法:
        static 关键字用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量。静态方法从参数列表得到数据,然后计算这些数据。

    对于静态变量和静态方法可以用类名称.静态变量/静态方法来调用。

    • 2.final修饰符
      • final变量:
        被final定义的变量,只能被初始化一次。而且被声明为final的对象的的引用不能指向不同的对象,但是对象的数据是可以改变的。既: final 对象的引用不能改变,但是里面的值可以改变。
      • final方法:
        类中的final方法可以被子类继承,但是不能被子类修改,声明final方法就是为了防止方法内容被修改。
      • final类:
        final 类不能被继承,没有类能够继承 final 类的任何特性
    • 3.abstract修饰符

      • 抽象类:
        抽象类不能用来实例化,抽象类是为了以后进行扩充的,而且abstract不能和final同时使用。抽象类中可以包含抽象方法和非抽象方法。
      • 抽象方法:
        抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。抽象方法不能被声明成 final 和 static。任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。
    • 3.synchronized修饰符
      synchronized修饰符修饰的方法,同一时间只能被一个线程访问。

    • 4.transient 修饰符

    • 5.volatile 修饰符

    相关文章

      网友评论

        本文标题:java基础第一篇

        本文链接:https://www.haomeiwen.com/subject/jhbxextx.html