11.javase_面向对象1
创始人
2024-03-29 12:16:47
0

一.面向对象介绍
1.1并不是一个技术,而是一种编程指导思想
1.2以什么形式组织代码;以什么思路解决问题
1.3为什么要用面向对象编程:
因为生活中,我们解决问题时,就是采用这种指导思想去解决的。
所以,我们写程序去解决问题时,如果也能采用这种指导思想就会使编程变得非常简单,程序也便于人理解

1.4 面向对象理解伪代码
public class Test{public static void main(Stringl] args){老师 t= new 老师();  //找一个老师试卷 s= t.出题();    //老师出试卷学生 stu = new 学生(); //找一个学生stu.考试(s);          //学生考试t.批卷(s);            //老师批改试卷}
}
1.5面向对象,重点学习什么?一点:学习如何自己设计对象并使用二点:学习获取已有对象并使用

二.类和对象
2.1 什么是类
类是对现实生活中一类具有共同属性和行为的事物的抽象
2.2 什么是对象
是能够看得到摸的着的真实存在的实体
2.3小结
类是对象的抽象(学生类),对象是类的实体(学生小明)
2.4对象的属性和行为
属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值(手机:品牌,价格,内存)
行为:对象能够执行的操作(手机:打电话,发短信)

三.类的定义
3.1 类是什么:
是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有的属性和行为
3.2类的组成:属性和行为
属性:在类中通过成员变量来体现(类中方法外的变量)
行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)
3.3类的定义步骤:
步骤1:定义类 (public class 类名 {})
步骤2:编写类的成员变量 (变量1的数据类型 变量1;)
步骤3:编写类的成员方法 (方法1;)
public class 类名 {
// 成员变量
变量1的数据类型 变量1;
变量2的数据类型 变量2;

// 成员方法
方法1;
方法2;

}
3.4 类的定义具体案例:

public class Phone {//成员变量String brand;int price;//成员方法public void call() {System.out.println("打电话");}public void sendMessage() {System.out.println("发短信");}}
3.5 对象的使用创建对象格式:类名 对象名 = new 类名();范例:Phone p = new Phone();使用对象使用成员变量格式:对象名.变量名范例:p.brand使用成员方法格式:对象名.方法名(参数)范例:p.call()对象使用具体案例:
public class PhoneDemo {public static void main(String[] args) {//创建对象Phone p = new Phone();//使用成员变量p.brand = "小米";p.price = 2999;System.out.println(p.brand);System.out.println(p.price);//使用成员方法p.call();p.sendMessage();}}

四.学生类的定义和使用
需求:定义一个学生类,然后定义一个学生测试类,在学生测试类中通过对象完成成员变量和成员方法的使用
/* 定义一个学生类 */

public class Student {//成员变量String name;int age;//成员方法public void study() {System.out.println("好好学习");}public void doHomework() {System.out.println("多做练习");}}
/* 定义一个学生测试类,通过对象完成成员变量和成员方法的使用 */
public class StudentDemo {public static void main(String[] args) {//创建对象Student s = new Student();//给成员变量赋值s.name = "林青霞";s.age = 30;System.out.println(s.name+","+s.age);//调用成员方法s.study();s.doHomework();}}

五.Java 内存分配
Java程序在运行时,需要在内存中分配空间。
为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
5.1Java 内存分配
在这里插入图片描述

5.2栈和堆
在这里插入图片描述

栈(虚拟机栈)所有局部变量都会在栈内存中创建局部变量:定义在方法中的变量或者方法声明上的变量方法执行都会加载到栈中进行局部变量特点:随着方法的调用而存在,随着方法的调用完毕而消失代码:Student s = new Student();
堆所有对象及其对应的实例变量和数组都将存储在此处简单理解为:new出来的东西,都存储在堆内存每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收实例变量(成员变量)有初始化值:基本数据类型:整数:0,浮点数:0.0,布尔:false,字符:空字符引用数据类型:null

5.3单个对象内存图
在这里插入图片描述
在这里插入图片描述

5.4多个对象内存图
在这里插入图片描述

5.5多个引用指向相同
在这里插入图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...