Java面向对象

面向对象(一)

属性

         成员变量和局部变量:

         相同点:

  1. 循环变量声明的格式: 数据类型 变量名 = 初始化值

2.都有作用域

         不同点:

  1. 声明位置不同:成员变量声明在类里,方法外

    局部变量声明在方法内,方法的形参部分,代码块内

    成员变量(写在类--class里)和局部变量(写在方法--main里)的区别

    成员变量的初始化(有图有真相)

    成员变量可以是java中任意一种数据类型(基础数据类型和引用类型)

    成员变量可以初始化, 也可以不初始化(java默认初始化)

    成员变量的作用范围-->整个类

   2.成员变量的修饰符有四个:public protected default private 权限由大到小递减

       局部变量没有修饰符,与所在的方法修饰符相同

   3.成员变量存在堆空间中,局部变量存在栈空间中

    总结:关于变量的分类:(1)按照数据类型的不同:基本数据类型(8种)  & 引用数据类型

                       (2)按照声明的位置的不同:成员变量 & 局部变量

方法

提供某种功能的实现    main方法也是方法,main方法里边的属性也必须要赋值。

1实例:public void eat(){//方法体}

        public String getName(){}

        public void setName(String n){}

        格式:权限修饰符 返回值类型(void:无返回值/具体的返回值) 方法名(形参){}

     

2关于返回值类型:void:表明此方法不需要返回值

           有返回值的方法:在方法的最后一定有return + 返回值类型对应的变量

       记忆:void 与return不可以同时出现一个方法内。 

3方法内可以调用本类的其他方法或属性,但是不能在方法内再定义方法

  内存划分的结构:

        栈:局部变量 、对象的引用名、数组的引用名

        堆:new 出来的“东西”(如:对象的实体,数组的实体),含成员变量

        方法区:含字符串常量

        静态域:声明为static的变量

方法的重载/重写

方法的重载(overload)

  要求:1.同一个类中 2.方法名必须相同 3.方法的参数列表不同(①参数的个数不同②参数类型不同)  方法的权限修饰符可以不相同

  补充:方法的重载与方法的返回值类型没有关系

  //如下的四个方法构成重载

  //定义两个int型变量的和

  public int getSum(int i,int j){

           return i + j;

  }  

  //定义三个int型变量的和

  public int getSum(int i,int j,int k){

           return i + j + k;

  }

  //定义两个double型数据的和

  public double getSum(double d1,double d2){

           return d1 + d2;

  }

  //定义三个double型数组的和

  public void getSum(double d1,double d2,double d3){

           System.out.println(d1 + d2 + d3);

  }

  不能与如上的几个方法构成重载

  public int getSum1(int i,int j,int k){

           return i + j + k;

  }

  public void getSum(int i,int j,int k){

           System.out.println(i + j + k);

  }

  以下的两个方法构成重载。

  public void method1(int i,String str){

          

  }

  public void method1(String str1,int j){

        

  }

原文地址:https://www.cnblogs.com/DONGb/p/7267702.html