Java进阶知识体系 (一)、类和对象 (二)、方法和封装 (三)、static关键字和继承 (四)、多态 (五)、特殊类
(一)、类和对象 面向对象编程的概念 万物皆对象 面向对象指以属性和行为的观点去分析现实生活中的事物。 面向对象编程指先以面向对象的思想进行分析,然后使用面向对象的编程语言进行表达的过程。 面向对象编程是软件产业化发展的需求。 理解面向对象的思想精髓(封装、继承、多态),至少掌握一种编程语言。
类和对象的概念 对象主要指现实生活中客观存在的实体,在Java语言中对象体现为内存空间中的一块存储区域。 类简单来就是“分类”,是对具有相同特征和行为的多个对象共性的抽象描述,在Java语言中体现为一种引用数据类型,里面包含了描述特征/属性的成员变量以及描述行为的成员方法。 类是用于构建对象的模板,对象的数据结构由定义它的类来决定。
类的定义 class 类名 { 类体; } 注意:通常情况下,当类名由多个单词组成时,要求每个单词首字母都要大写。
成员变量的定义 class 类名 { 数据类型 成员变量名 = 初始值; } 注意:当成员变量由多个单词组成时,通常要求从第二个单词起每个单词的首字母大写 。
定义类与定义成员变量范例 class Person { String name; String primarySchool; }
成员变量的初始值
对象的创建 new 类名(); new Person(); 注意: a.当一个类定义完毕后,可以使用new关键字来创建该类的对象,这个过程叫做类的实例化。 b.创建对象的本质就是在内存空间的堆区申请一块存储区域, 用于存放该对象独有特征信息。 对象的内存图 1)含有主方法的类的字节码文件加载到方法区 2)主方法压栈 3)加载Car的字节码文件加载到方法区 4)在主方法中声明 Car c1 变量 5)在堆中创建对象,完成成员变量的默认初始化, color默认初始化null, num 是0 (成员变量不初始化有默认值,局部变量 不初始化没有默认值) 6)使用对象给成员变量赋值 color = “red” num=8 , 在堆中这个对象的这两个变量由默认初始化变为修改后的值 7)调用c1的run方法, run方法压栈执行run方法,所以打印color 打印num数. 8)run方法执行完弹栈 9)主方法执行完毕,也弹栈. 10)在栈中没有引用指向堆中的对象
引用的定义 a.使用引用数据类型定义的变量叫做引用型变量,简称为”引用”。 b.引用变量主要用于记录对象在堆区中的内存地址信息,便于下次访问。 语法格式 类名 引用变量名; 引用变量名.成员变量名; Person p = new Person(); p.name = “张飞”; System.out.println(p.name);
成员变量和局部变量的区别 1)类中的位置不同 成员变量: 类中方法外 局部变量:方法声明上或方法中定义 2)内存中的位置不同 成员变量: 堆中 局部变量:栈 3)生命周期不同 成员变量: 随着对象的创建而创建,随着对象的消失而消失 局部变量: 随着方法的调用而创建,随着方法弹栈的消失而消失 4)初始化值不同 成员变量: 有默认初始化值 引用数据类型为null 基本数据类型 0 char ‘\u0000’ 局部变量: 没有默认初始化值, 如果想要使用,必须再使用前进行初始化
在使用变量的时候有一个原则: 就近原则
class Demo {
static int x = 10;
public static void main(String[] args){
int x = 20;
System.out.println(x); //20
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/2109.html