java--类与对象的基础知识

面向对象语言的特点:封装性,继承,多态

成员变量

  1. 成员变量的类型:包括基本类型:整型,浮点型,字符型,逻辑类型和引用类型:数组,对象,接口
  2. 成员变量的有效范围:成员变量在整个类内都有效,有效性与在类体中的书写位置无关,即使书写在最后在整个类里都有效

方法

  1. 方法包括方法头和方法体,在方法体中声明的变量和参数被称为局部变量。
  2. 局部变量只在方法内有效,有效性与方法声明的位置有关,方法内的局部变量从它声明的位置之后开始有效。如果局部变量声明在一个复合语句中,那么该局部变量的有效范围是该复合语句,如果声明在一个循环语句中,那么局部变量的有效范围是该循环语句。
  3. 区分成员变量和局部变量:如果局部变量和成员变量名字相同,那么该成员变量被隐藏,成员变量在这个方法内暂时失效;
    如果想使用被隐藏的成员变量,就要使用关键字this,如y=x+this.x,第一个x为局部变量,第二个为成员变量;
    成员变量有默认值,局部变量没有默认值,因此在使用局部变量前,要为其设置一个值
  4. 成员变量时可以赋初值,如 int a=12;但是不能出现下列情况
    int a;
    a=12;//赋值语句,只能出现在方法体中

构造方法

  1. 构造方法的名字与类的名字相同,没有类型。
  2. 如果没有编写构造方法,系统会默认为这个类创建一个无参的构造方法,方法体内也没有语句
  3. 如果类里定义了一个或多个构造方法,系统就不会提供默认的无参构造方法,所以一般在定义时定义无参和带参的构造方法。

创建对象

这里我们以类A为例,声明一个a实体,假设A类没有静态方法和属性
1. 声明对象的内存模型:A a;声明对象变量a后,a的内存中没有数据,这时称a为一个空对象,空对象不能使用,因为他还没有得到任何“实体”,必须再进行为对象分配变量的操作,即为对象分配实体。
2. new A();     这时会进行两个操作:一,为各个变量分配内存,即为A的成员变量分配内存空间,然后执行构造方法中的语句。如果成员变量在声明时没有指定初始值,使用的构造方法也没有对成员变量进行初始化操作,那么,对于整型的成员变量,默认初值时0,浮点型为0.0,boolean默认初值时false,引用类型初始值为null。
第二,new运算符在为成员变量分配内存之后,会计算出一个称作引用的值(内存信息),即表达式new A()是一个值,A a=new A()即是将引用赋给a,那么给成员变量分配的内存空间将由a管理,成员变量是属于对象a的实体,这些变量属于a。
3. 综上,所谓创建对象就是为对象分配变量,并获得一个引用,以确保这些变量由该对象来操作管理。

猜你喜欢

转载自blog.csdn.net/ayangann915/article/details/80400609