面向过程;面向对象;引用变量;成员变量;内存管理;this;GC

面向过程:C,Basic,Pascal

        核心思想: 自顶向下,逐步细分,模块化

        程序的基本单元:函数

            针对于函数来说:会接收一些数据,进行处理,然后再输出

                                         一些数据。

                               主函数

              函数1        

                         函数2     函数3

           如:吃(猪八戒,西瓜)

面向对象:C++,java,C#...相对面向过程,简单,好学。

        核心思想:使用类,对象,继承,封装,消息,动态绑定,静态绑定等进行程序设计

扫描二维码关注公众号,回复: 2715165 查看本文章

        程序的基本单元:类

    

        如:

              首先:设计猪妖类型,

              然后: 实例化一个猪妖

              其次: 初始化信息

              使用: 猪八戒.吃(西瓜)

抽象数据类型:用不同类型的数据的组合来描述一种新的事物。

      如:描述人类

                    String   姓名

                    int      年龄

                    char     性别

                    double   weight

                    String[]  爱好

        

类:用来定义一种抽象数据类型  

              定义上述描述的新的事物

      public class Person{

        //成员变量

        String name;

        int age;

        char gender;

        ....

        /*方法

          1:可以定义这种类型的一些共同行为

          2:可以使用这些方法来操作成员变量

        */

      }        

对象:是类产生的个体,即类的实例化             

          在程序的逻辑中被使用。

     

          如何实例化和初始化?

         new 构造方法(有参传参)

null与NullPointerException

    null:是引用类型的默认值

    NullPointerException:是程序在运行时产生的一种异常

                    如何产生的??  

                    当引用变量没有指向任何对象时,

                    调用了类型中的成员变量或者方法

          reg:

             Person p = null;

             p.eat("面包");

             p.name = "张三";

引用变量:简称引用,

      存储的是堆中对象的地址信息,我们可以理解为变量

      指向了堆中的对象

方法    

1、方法签名: 方法名+参数列表

    2、方法重载:

        在同一个类型中,方法名相同,参数列表不同,

        即方法的重载

    3、定义语法:

             修饰词   返回值类型   方法名(....){

       

       }

    4、调用语法:

                    没有static修饰的方法

                    必须使用引用.方法(有参传参);       

     

构造方法:

      作用:用来初始化对象的成员变量

      定义语法: 修饰词  类名(...){}

      调用语法: new 构造方法();   

    

      无参构造器:没有定义构造器时,系统会默认提供无参构造器

   

      注意:只要定义了构造器,系统不再提供默认构造器

      

成员变量与局部变量的区别:

    成员变量

        定义位置:在方法外,类体中

        默认值:有默认值,构造器中可以不对成员变量初始化

        内存位置:在堆中

        生命周期:从对象实例化开始出现,到对象消失    

    局部变量

        定义位置:在方法内(包含小括号内的形参)      

        默认值: 没有默认值,必须初始化再使用   

        内存位置:在栈帧中

        生命周期:从声明时开始,到方法结束后,栈帧消失时。

 

内存管理:

    jvm将内存分成三大主要区域,堆,栈,方法区,用来存储数据。

    

    堆(heap): 存储new出来的对象,给成员变量分配空间        

    栈(stack):jvm在执行程序时,在栈中,会为每一个方法分配一

     个空间(即栈帧),用来存储方法的局部变量。

     方法区:  用来存储jvm加载的字节码文件的信息(类的信息)

        包含类的方法,方法只有一份,堆中的对象共享

        这份方法,在使用非static修饰的方法时,需要

        对象来调用(即动态绑定到对象上)  

垃圾回收机制:(GC)

     jvm的一个独有线程(程序),用于回收没有任何引用指

           向的对象。

     

     System.out.println((new Person()).name);

          上述产生的对象,以后再也无法使用,如果类似的这样情况

         有很多,对象来不及被处理,内存剩余空间就会越来越小,

         有可能出现内存溢出情况。

     

         因此需要一个处理机制,即垃圾回收机制。没有被引用的对象

         会被视为垃圾,等待GC被回收

     (因为有垃圾绘制机制,所有java程序猿无需单向内存

          溢出或泄露情况)

this关键字:

      在普通方法或构造器中,操作的成员变量如果与局部变量名称相同时,

      为了避免出现歧义,应该在成员变量前使用this.进行区分

      当没有歧义时,this.可以省略不写        

 

     在构造器中:还可以使用this关键字调用本类中的其他构造方法  

      语法格式: this(有参传参)

      只能在构造器中的首行首句上使用

构造器的重载

调用

数组的构造方法

 

 

猜你喜欢

转载自blog.csdn.net/K_KingoneTen/article/details/81319333
今日推荐