200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > java知识点7——面向过程和面向对象 面向对象的内存分析 构造方法

java知识点7——面向过程和面向对象 面向对象的内存分析 构造方法

时间:2021-07-15 00:51:41

相关推荐

java知识点7——面向过程和面向对象 面向对象的内存分析 构造方法

面向过程和面向对象

解决简单问题可以使用面向过程解决复杂问题:宏观上使用面向对象把握,微观处理上仍然是面向过程。面向对象具有三大特征:封装性、继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能。所以面向对象优势更明显。

属性(field,或者叫成员变量)

属性用于定义该类或该类对象包含的数据或者说静态特征。

属性作用范围是整个类体。

面向对象的内存分析

Java虚拟机的内存可以分为三个区域:栈stack、堆heap、方法区method area栈的特点如下:

1. 栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)

2. JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)

3. 栈属于线程私有,不能实现线程间的共享!

5. 栈是由系统自动分配,速度快!栈是一个连续的内存空间!

堆的特点如下:

1. 堆用于存储创建好的对象和数组(数组也是对象)

2. JVM只有一个堆,被所有线程共享

3. 堆是一个不连续的内存空间,分配灵活,速度慢!

方法区(又叫静态区)特点如下:

1. JVM只有一个方法区,被所有线程共享!

2. 方法区实际也是堆,只是用于存储类、常量相关的信息!

3. 用来存放程序中永远是不变或唯一的内容。(类信息【Class对象】、静态变量、静态方法、字符串常量等)

构造方法

构造器也叫构造方法(constructor),用于对象的初始化。构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。

1. 通过new关键字调用!!

2. 构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。

3. 如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加。

案例:

1. 定义一个“点”(Point)类用来表示二维空间中的点(有两个坐标)。要求如下:

(1) 可以生成具有特定坐标的点对象。

(2) 提供可以设置坐标的方法。

(3)提供可以计算该“点”距另外一点距离的方法。

class Point{double x,y;public Point(double _x,double _y) {x=_x;y=_y;}public double getDistance(Point p) {return Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));}}public class TestConstructor {public static void main(String[] args) {Point p=new Point(3.0,4.0);Point origin=new Point(0.0,0.0);System.out.println(p.getDistance(origin));}}

运行结果:5.0

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。