nxmxx / blog

记录我的学习路程和我的进步
1 stars 0 forks source link

亚信day6 面向对象 #10

Open nxmxx opened 4 years ago

nxmxx commented 4 years ago

面向对象 1.面向对象的概述 面向对象:不关心具体过程与步骤,只关心我所需功能的被谁拥有,我找到这个拥有者(类似于有工程只需将工程交给包工头,等待结果即可); 面向过程:注重每一个具体过程与步骤,一定要亲力亲为。 2.类和对象的关系 类:是对一类事物的总结,这类事物都满足此类的属性与行为。 属性:事物的状态信息(也就是类中的成员变量) 行为:该事物能做什么(类中的成员方法) 对象:对象就是某类的具体体现。比如:大学生为类,则大学生小明就是对象。 类和对象的关系:类是对象的模板(总结或归类),而对象是类的具体实例化(具体的某个个体) 3.类的定义 package cn.javase.video.study.objectoriented;

/定义一个类用来模拟“学生”这个类,其中有两个部分组成 属性(是什么): 姓名 年龄 行为(能做什么): 学习 考试 睡觉 与java类对应: 成员变量(属性): String name; //姓名 int age;//年龄 成员方法(行为): pubic void study(){}//学习 pubic void test(){}//考试 pubic void sleep(){}//睡觉 注意事项: 1.成员变量是写在类中方法外。 2.成员方法中不要写static。

}

1.对象的创建及其应用 package cn.javase.video.study.objectoriented;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

/*对象的创建

// 3.对象的使用

// (1)对象名称.成员变量 System.out.println(CD.age); System.out.println(CD.name); System.out.println("name:" + CD.name + " "+"age:" + CD.age); System.out.println("---------------------------------------------------"); // 更新类中成员变量数值 CD.name = "王磊"; CD.age = 12; System.out.println("name:" + CD.name +" "+ "age:" + CD.age);

// (2)对象名称.成员方法 CD.sleep(); CD.study(); CD.test(); } }

4.手机类练习 (1):手机练习 类的代码 package cn.javase.video.study.objectoriented;

/*定义一个类 模拟“手机”事物

public class ExerciseIphoneUser { public static void main(String[] args) { ExerciseIphone ei = new ExerciseIphone();//创建对象

// 使用成员变量,为类中成员变量更新数值 ei.biand = "HuaWei"; ei.color = "Black"; ei.price = 3299.0; System.out.println("your iphone boand is :" + ei.biand + " your iphone color is :" + ei.color + " your iphone price is :" + ei.price); //使用成员方法 ei.calliPhone("Nick");// ei.internet(); ei.message();

}

}

5.一个对象的内存图

6.两个对象的内存图

方法区存储方法的信息,方法在栈中运行,进栈运行,运行结束后出栈。 栈中的成员变量phone one,phone two根据16进制地址值找到堆中new出的成员变量和成员方法,new的成员变量存储在堆中,对成员变量进行操作,根据16进制地址值找到堆中成员变量进行操作; 而new出的成员方法值在堆中存储16进制地址值。 成员方法执行:在栈中调用call();aendMessage();等类中的成员方法,此成员方法在栈中执行,结束后退出栈

nxmxx commented 4 years ago

7两个引用指向同一对象的

8.使用对象类型作为方法的参数 9使用对象类型作为方法的返回值

使用对象类型作为方法的返回值类型,当一个方法返回值类型为对象类型时,main函数中调用方法,方法返回值将对象类型的16进制地址值返回给调用函数处,返回值在主函数中赋值操作都是将地址值赋给对方(赋给新的对象类型,新的对象进行数据更新、成员方法调用等)。 10局部变量与成员变量的区别

  1. 定义的位置不一样(重点): 局部变量:在方法的内部; 成员变量:在方法的外部,直接写在类当中;
  2. 作用范围不一样: 局部变量:作用于方法内部; 成员变量:作用于整个类当中;
  3. 默认值不一样: 局部变量:必须对局部变量初始化,也就是赋值,否则会报错。但是除方法中的参数外,方法中的参数不初始化(赋值),因为参数在被调用的时候必然会被赋值。 成员变量:如果没有赋值,成员变量会有默认值。
  4. 内存的位置不一样: 局部变量:局部变量跟随方法在栈中执行完就消失,所以存储在栈中。 成员变量:位于堆中存储。
  5. 生命周期不一样: 局部变量:随着方法进栈而诞生,随着方法出栈而消失; 成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失。