JAVA进阶(一)

版权声明:程序猴jwang版权所有 https://blog.csdn.net/qq_21046965/article/details/82973571

前言

      经过了JAVA入门阶段的讲解,我认为大家对JAVA中基本的概念已经摸通了,下面进入进阶,学习下面向对象的基本思想,说不准学完面向对象单身的可以找到对象哦。

概念

1.面向对象

俗话说的好,万事万物皆为对象,为什么呢?我们知道,大千世界的每一种生物都是一个整体,包括它们的名字,属性等。比如我们人,每个人都有它们的姓名、年龄、性别等等一系列属性,对象的概念便基于此。

特别的:之前数据库中定义的表(如雇员表emp、部门表dept)便是对应java中的雇员类、部门类

2.类的定义以及对象与类的关系

java中我们定义类来表达某类事物,比如人(人包含姓名、年龄、性别等等属性)。

这类事物中某个具体的事物就是对象,比如张三,张三他就是人的一种(姓名张三,年龄20,性别男等等)。

语法:class 类名 {成员变量、构造方法、getter、setter...}

范例:定义一个人的类Person

 2.类的构造方法

我们可以发现,我们新建的Person类有四个属性,但是我们怎样创造一个Person呢?也就是说如何创造出一个人(对象)呢?

java中专门提到了构造方法的概念用来创造该类的一个对象。构造方法分为无参构造方法和有参构造方法两种。

无参构造方法-->语法:修饰符 类名(){}

有参构造方法-->语法:修饰符 类名(参数){方法体}

3.对象的创建

有了构造方法之后,我们就可以创建一个Person类对象,比如张三啦!java 使用new关键字定义一个新的对象。

语法:类名 对象名 = new 构造方法();

范例:创建两个Person类的对象,分别采用无参和有参构造方法

4.面向对象的内存分析(建议新手一定要看)

(1)内存的概念

java虚拟机的内存可分为三个区域:栈(stack)、堆(heap)、方法区(method area)

栈(stack):存放基本类型的变量数据和对象的引用,栈描述的是方法执行的内存模型,JVM为每个线程创建一个栈,用于存放线程执行方法的基本信息,栈的存储特性为“先进后出、后进先出”,大家可以理解为一个形象化的弹夹。栈由系统自动分配,速度块,是一块连续的空间。

堆(heap):存储的全部是对象(包括数组等),每个对象都包含一个与之对应的class的信息。JVM只有一个堆,被所有线程所共享,堆是一个不连续的内存空间,分类灵活,但速度较慢。

方法区(method area):又叫静态区,跟堆一样,JVM只有一个方法区,被所有线程所共享。方法区包含所有的类信息和静态变量、静态常量以及字符串常量。

堆栈信息基本示意图如下:

猜你喜欢

转载自blog.csdn.net/qq_21046965/article/details/82973571
今日推荐