面向对象

来源:互联网 发布:网络选修课 编辑:程序博客网 时间:2024/06/08 17:04

一.面向对象的理解
(1)面向对象是一种相对于面向过程更容易让人理解的思想
(2)面向过程体现的更多的是执行者,面向对象更多的体现是指挥者,指挥(调用)对象做事情
(3)在Java中一切事物都是对象,面向对象能将许多复杂的问题简单化.
(4)在Java中实现一个功能时,不是自己去实现这个功能而是去找一个对象,对象提供这种功能,这就是面向对象的思想.
二.在Java中面向对象思想实现的步骤
1.设计类
类分为三种:JDK里面提供的类,第三方提供的类以及自己定义的类
2.通过设计的类创建对象
对象分为有名对象和匿名对象
3.通过对象调用方法
三.在Java中面向对象的代码实现过程
1.设计类(自定义类)———-类包括成员变量,构造方法,成员方法,set/get方法
public class Student {
//成员变量
private String name;
private int age;

//构造方法 public Student() {    super();}public Student(String name, int age) {    super();    this.name = name;    this.age = age;}//set和get方法public String getName() {    return name;}public void setName(String name) {    this.name = name;}public int getAge() {    return age;}public void setAge(int age) {    this.age = age;}//show方法 public void show(){    System.out.println(name + "\t" + age);}//study方法public void study(){    System.out.println("学生学习");}   

}
2.通过设计的类创建对象
(1)无参构造
Student stu1=new Student();
stu1.setName(“张XX”);
stu1.setAge(13)
(2)有参构造
Student stu2=new Student(“张XX”,13)
3.通过对象调用方法
stu1.show();
stu1.study();
stu2.show();
stu2.study();
内存图
这里写图片描述
在JVM(Java虚拟机中),会从上到下,从左到右依次遍历代码
1.当出现Student类时,该类的字节码文件会加载到类加载区,在类加载区中有一个方法区存储该类的成员方法,构造方法,set/get方法
2.当通过Student类创建对象时,stu1会在栈区开辟一个空间,new Student()会在堆区开辟一个空间,并为空间中的成员变量初始化赋值,空间中的方法标识符获取方法区中地址值指向方法区,并将该空间的地址值赋值给stu1
3.stu1获取到堆区对象的地址值后指向堆区的对象,并通过方法区标识符找到方法区中的方法
4.stu1.setName(“张XX”);
stu1.setAge(13),stu1指向对象,从方法标识符中获取setName和setAge方法,使setName和setAge方法到栈中区执行,运行完后在栈中消失.
5.调用其他方法也是一样的道理.

原创粉丝点击