JAVA基础面向对象分析

面向对象内存的分析:java

一:内存的分类ide

1:栈(tack)函数

2:堆(heop) this

3: 静态区对象

4:代码区继承

二:引用数据类型内存特色接口

三:引用数据类型传值的特色内存

四:引用数据类型在做为参数时的特色get

 

 

面向对象的基础模板

一:三大特征

1:封装(抽象)(封装就是定义一个类,而后给该类的属性和方法加上访问控制修饰符 public private..)

2:继承

      2.1:父类(基类 超类)

      2.2:子类

                2.2.1:子类在同一个包下,能够访问父类除了私有private修饰的全部属性和方法

                2.2.2:在不一样包下,子类只能访问public修饰的属性和方法

                2.2.3:子类内部,不一样包状况下,能够访问protected修饰的属性和方法,可是不能访问默认的修饰符修饰的属性和方法

                2.2.4:子类在初始化时,会先调用父类默认不带参数的构造器,若是没有报错,只有修改

                             1.将父类添加一个无参数的构造器
                             2.子类构造器中手动使用 super() 声明调用哪一个父类的构造器

       2.3: extends

3:多态(运行时加载)

       3.1:继承

       3.2:重写

       3.3:父类引用指向子类对象

 

二:类(简单理解就仅仅只是一个模板)

1:成员变量,全局变量,属性 (当对象初始化以后,成员变量就会有初始值

                             String null
                              整型 0
                            浮点型 0.0
                           boolean false
                            char (char)0)

2:行为,动做,函数,方法全部和动做相关的,都应该放入到方法中)

3:经过类建立对象(new)

 

三:对象

1:对象是类的实例

2:也具备属性和方法

3:对象都是属于某个类

4:一切皆对象

5:每一次(new)都会产生一个新的对象

 

四:重要的知识点和关键字

1:(this) 

      1.1:表明当前对象自己

      1.2:有时候须要把当前调用对象进行传递,那么就可使用(this)替代当前调用对象

      1.3:在构造器中可使用 this(参数)调用本类其余构造器

2:(super)

      2.1:  指代父类

      2.2:super()调用父类的构造器

      2.3:super()若是放在子类中调用,只能放在子类构造器代码的第一行

      2.4:使用super()点 能够在子类中调用父类中的方法

3:重载(是指一个类中具备相同的方法名称,可是参数列表不一样)

4:重写(override)

  4.1:继承

  4.2:子类重写父类的方法

  4.3:方法名,参数类型,参数个数,返回值同样

  4.4:只是方法名同样,其余的有不同,就是子类的重载

  4.5:注意 父类private修饰的方法,子类不能重写

  4.6:子类重写方法的访问修饰符可见度,必须比父类方法的访问修饰符可见度高或者同样

5:instanceof(判断某个对象是不是某个类型)

6:对象转型

  6.1:转型条件

    6.1.1:有继承关系

    6.1.2:有互相引用

    6.1.3:要把父类转型为子类,父类型必须包含子类型

  6.2:上转型

  6.3:下转型

7:(new)

  7.1:只要使用 new 关键字,就是建立一个新的对象

  7.2;要注意一个问题,不要以为有时候参数须要一个对象,就直接 new 一个对象传过去

8:构造方法(构造器,构造函数)

9:访问修饰符

  9.1:public(公开的)

  9.2:private(私有的,只能在类的内部使用)

  9.3:protected(受保护的,在不一样包下面的访问规则和public不同,不一样包不能够访问.在不一样包下继承时,与friendly不一样)

  9.4:friendly(默认的,在不一样包下面的访问规则和public不同,不一样包不能够访问.)

  9.5:可见度(public>protected>friendly>private)

10:javabean

  10.1:全部属性都是private

  10.2:为每一个属性创建setter和getter方法

  10.3:这个其实就是为了之后装数据用的一个类

11:final

  11.1:常量不能进行自增和自减

  11.2:final修饰类不能被继承

  11.3:final修饰方法不能被重写

12:static

  12.1:静态的属性和方法属于整个类

  12.2:静态的值只有一个(基本数据类型能够看出此特色)

  12.3:静态的值只会初始化一次(引用数据类型)

  12.4:静态属性方法或静态块会在JVM加载的时候就加载了

  12.5:通常状况静态的常量属性,咱们通常书写为 public static final 数据类型 大写常量名=值

13:类和类的关系

  13.1:组合(紧密has-a,一个类是另外一个类的属性)

  13.2:依赖(use-a 一个类是另一个类方法的参数)

14:object(全部类的父类)

15:抽象类

  15.1:abstract

  15.2:抽象类不能够用new关键字实例化,实例化一个抽象类没有任何意义、

  15.3:抽象类不能实例化可是有构造器

  15.4:抽象类和抽象方法,必须被abstract修饰

  15.5:若是要用抽象类,可使用多态

  15.6:抽象类是用来被继承的,抽象方法就是用来实现的,实现多态

16:抽象方法

  16.1:抽象方法必定在抽象类中

  16.2:不能被private修饰

  16.3:不能被static修饰

  16.4:没有{ }

  16.5:子类必须实现抽象方法

17:接口(interface)

  17.1:implements

  17.2:接口中的变量全是静态变量

  17.3:接口中的方法默认是公开抽象(public abstract),就算不写,也会自动加上

  17.4:jdk 1.8 之后能够手动声明默认方法和静态方法

  17.5:接口能够多实现,一个类能够实现多个接口

  17.6:接口与接口之间使用extends

  17.7:一个子类能够继承一个父类,实现多个接口

  18.8:接口没有构造器

相关文章
相关标签/搜索