java中类的成员之:属性,方法
一、类的属性(或成员变量)Field:
* 成员变量 vs 局部变量
* 1.相同点:①变量的声明: 数据类型 变量名 = 初始化值;
* ②都有其作用域,仅在作用域内有效
* 2.不同点:
* ①在类中声明的位置不同
* >属性:直接定义在类的内部的变量
* >局部变量:方法内定义的;方法的形参;代码块内部;构造器内部;。。。
* ②成员变量声明的数据类型前可以指明这个变量的权限:private 缺省 protected public
* 局部变量声明的数据类型前不可以有权限的声明。
* ③成员变量可以不显式的赋值,那么就会使用其默认赋值。
* byte short int long==>0
* boolean==>false
* float double==>0.0
* char ==>\u0000 空格
* 引用数据类型 ==>null
* 局部变量:除方法的形参之外,都需要显式的赋值,否则报错
* 方法的形参是在方法调用的时候赋值的。
* ④在内存中保存的位置不同:
* 成员变量保存于堆空间;
* 局部变量保存于栈空间
*
*
* 总结:①变量按照数据类型分: 1.基本数据类型(byte short int long boolean float double char)
* 2.引用数据类型(类、数组、接口)
* ②变量按照声明的位置:1.成员变量(属性:直接定义在类的内部的变量) 2.局部变量(方法内定义的;方法的形参;代码块内部;构造器内部;。。。)
* 二、类的方法(成员方法、Method、成员函数):封装了一定功能的机构体。
* 比如:
* public void eat(){//方法体}
* public void showNation(String nation){//方法体}
* public String getName(){return name}
* public int getTime(int time,String s,boolean b){return time;}
* 方法声明的格式:
* 权限修饰符 方法的返回值类型 方法名(形参列表){
* //方法体;
* }
* >权限修饰符:表明这个方法可以被调用的范围。java规定了4种不同的权限:private 缺省 protected public
* >方法的返回值类型:void / 有具体的返回值类型。
* void:表示此方法没有返回值
* 有具体的返回值类型:基本数据类型或者引用数据类型。
* 要求方法体内必须有return + 相应类型的变量
*
* >方法名:就是一个标识符,需要满足命名的规则、规范:xxxYyyZzz. "见名知义"
* >形参列表:属于局部变量,个数从零个到多个都可以。
* >方法体:体现了一个方法具体功能的实现。
*
* 注:方法内可以调用本类中声明的其他的方法或属性。
* 但是方法内不可以定义新的方法
* 三、完成具体功能的步骤。
* 1.先去找具体功能所在的类,如果有,直接调用。如果没有,自己创建。
* 2.创建类,实际上就是创建类的成员。主要类的成员:属性、方法
*
* 四、面向对象编程思想的落地的法则一:(重点)
* 1.创建一个类,并提供类的属性、方法
* 2.创建类的对象(或 new 一个类的对象 或 类的实例化)
* 3.通过"对象.属性" 或 "对象.方法" 的形式,进行功能的调用
4.类的初始化的内存解析
4.1 内存划分的结构:
栈(stack):局部变量 、对象的引用名、数组的引用名
堆(heap):new 出来的“东西”(如:对象的实体,数组的实体),含成员变量
方法区:含字符串常量
静态域:声明为static的变量
4.2 理解的基础上,学会基本的创建的类的对象在内存中的运行。
* 五、创建一个类的多个对象,不同的对象之间没有关系,各自拥有一套类的“副本”:属性。
* 即:当对一个类的对象的属性修改值时,不会影响其它对象的属性的值。
*
* 六、对象的内存解析(见图)