类与对象的定义与使用
程序员文章站
2022-04-02 10:48:22
...
1 简介
1.1 面向对象的三大特征
1 封装性、2 继承性、3 多态性
- 封装性:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。简单来说,内部操作对外部而言不可见(保护性)。
- 继承性:指一种能力,可以使用现有类的所有功能,并在无需重新编写原来的类的情况下,对这些功能进行扩展。
- 多态性:指一个类实例的相同方法在不同的情形有不同的变现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。(利用多态可以得到良好的设计)
实例化:在面向对象的编程中,通常把类创建对象的过程称为实例化
eg:Data data = new Data();就是用日期类创建了一个日期的对象,就叫对象的实例化
2 类与对象的定义与使用
2.1 基本概念
类是指一个共性的概念,对象指一个具体的事物。首先产生类,再产生对象,且对象的所有行为,要在类中进行完整的定义。
类中的组成部分:属性(变量)、方法(行为)
2.2 定义与使用
定义一个类:
class 类名称{
属性1;
属性2;
属性...;
方法1(){}
方法2(){}...
}
产生对象的语法:类名称 对象名称 = new 类名称();
//只要出现了关键词new就开辟了内存。
此时可以通过对象调用实例变量与实例方法。例如:
class Person{
protected String name;
public int id;
public Person(String name,int id){
this.name = name;
this.id = id;
}
public String get(){
return "姓名:" + this.name + " 编号:" + this.id;
}
}
public class KeJian {
public static void main(String[] args) {
Person per = new Person("你",18);
System.out.print(per.name);
System.out.println(per.id);
System.out.println(per.get());
}
}
//输出:
//你18
姓名:你 编号:18
2.3 内存与引用传递分析
1 内存分析
内存区域划分,能划分出多部分,现只了解其中几个。
- 栈内存:存放的是局部变量(包含编译期可知的各种基本数据类型、对象引用-即对内存的地址,可以简单的理解为对象的名称)。
- 堆内存:保存的是真正的数据,即对象的属性信息(new出来的东西都在堆上)。
- 方法区:放的是方法,也是把.class文件中的二进制指令加载到内存中,就放到一个专门的空间(方法区)里
Heap对于一个JVM来说,只有一份;JVM stack 可能有多份,每个thread(线程)有一份。(线程:一个代码的执行流)
注:对象必须在实例化后调用,否则会产生NullPointerException(运行时出错),编译不会出错。因为对象是引用数据类型,包括数组、类、接口都会出现此异常。
2 引用内存分析
因为对象也是引用数据类型,与数组相似。本质都是:一块堆内存可以被多个栈内存所指向。
垃圾空间:没有任何内存指向的堆内存的空间
推荐阅读
-
Python中函数和类的定义和使用
-
Android中gravity与layout_gravity的使用区别分析
-
详解iOS应用使用Storyboard布局时的IBOutlet与IBAction
-
使用vue-router与v-if实现tab切换遇到的问题及解决方法
-
vue中slot(插槽)的介绍与使用
-
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
-
jquery prop的使用介绍及与attr的区别
-
Javascript中return的使用与闭包详解
-
Cwrsync如何使用可以实现Linux与windows下的文件同步详解
-
牛蒡子的功效与作用有哪些(牛蒡子使用有哪些禁忌)