day06对象
2021/9/25 23:13:13
本文主要是介绍day06对象,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、对象与类
1.1 对象的定义
面向过程:面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求
面向对象:这些步骤和功能再进行封装,封装时根据不同的功能,进行不同的封装,功能类似的用一个类封装在一起,这样结构就清晰了很多。用的时候,找到对应的类就可以了
面向过程:强调的是每一个功能的步骤 面向对象:强调的是对象,然后由对象去调用功能 举例:炖排骨汤 面向过程:洗排骨-焯水-放入锅中大火烧开后转小火-加入调料-小火炖 面向对象:洗排骨-放入炖汤机器中-喝汤
1.2 类
类如何和事物进行对应的呢? 1、类: 成员变量:对应事物的属性 成员方法:对应事物的方法 2、成员变量与普通变量的区别: 位置不同:成员变量在类中、方法外 初始值:成员变量无需给初始值,它有默认值 3、成员方法和普通方法的区别: 没有关键词static 4、举例:学生类 public class Student { //成员变量 //姓名 String name; //年龄 int age; //成员方法 //学习的方法 public void study() { System.out.println("好好学习,天天向上"); } //吃饭的方法 public void eat() { System.out.println("学习饿了要吃饭"); } }
1.3 对象和类的关系
我们如何描述现实世界事物: 1、属性:该事物的描述信息(事物身上的名词) 2、方法:该事物能够做什么(事物身上的动词) 类与对象: 类:一组相关的属性和行为的集合 对象:该类事物的具体体现 如类:学生,对象:张三;类:车,对象:奔驰 创建对象: 类名 对象名 = new 类名(); public class Student { ... } Student s = new Student();
2、对象的内存图
2.1 一个对象的内存图
2.2 两个对象的内存图(共用一个方法区)
2.3 两个对象的内存图(指向同一个堆内存)
2.4 成员变量和局部变量的区别
成员变量和局部变量的区别: A:在类中的位置不同 成员变量:在类中,方法外 局部变量:在方法中或者方法声明上(形式参数) B:在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 C:生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 D:初始化值不同 成员变量:有默认值 局部变量:没有默认值,必须先定义,赋值,最后使用 public class test { int x; //x为成员变量 public void show() { int y = 1; //y为局部变量 System.out.println(y); System.out.println(x); } }
3、 private、this关键字和封装
3.1 private
public class Student { String name; int age; } Student s = new Student() s.age = -20; 1、why 直接使用对象名访问成员变量,会存在数据的安全问题 如age不可能小于0,不对成员变量做限制就会存在这种问题 2、how 使用private private 3、what private: 1、是一个修饰符 2、可以修饰成员变量,也可以修饰成员方法 3、被private修饰的成员只能在本类中被访问 针对被private修饰的成员变量,我们会相应的给出getXxx()和setXxx()用于获取和设置成员变量的值 public class Student { private String name; public void setName(String n){ name = n; } public void getName() { return name; } private int age; public void setAge (int a) { if(a<0 || a>200) { System.out.println("你给的年龄有误"); }else { age = a;} public int getAge() { return age; }
3.2 封装
1、what 把成员变量隐藏在对象内部的,外界无法直接操作和修改 2、好处 通过方法来控制成员变量的操作,提高了代码的安全性 把代码用方法来封装,提供了代码的复用性 3、原则 将不需要对外提供的内容都隐藏起来。 把属性隐藏,提供公共方法对其访问。 成员变量private,提供对应的getXxx()/setXxx()方法
3.3 this关键词
1、使用场景 局部变量和成员变量同名时 public void setName(String name) { //"林青霞" //name = name; 如果局部变量名称和成员变量名称一致,在方法中使用的时候采用的是就近原则。因此这俩都是默认值null this.name = name; } public String getName() { return name; //return this.name; } public void setAge(int age) { this.age = age; }
4、对象的构造方法
4.1 构造方法的作用
用于给对象的数据进行初始化,减少代码量
4.2 格式
–方法名与类名相同 –没有返回值类型,连void都没有 –没有具体的返回值 public class Student { public Student() { System.out.println("这是构造方法"); } }
4.3 如何调用构造方法
格式:类名 对象名 = new 构造方法(...); Student s = new Student();
4.4 构造方法的注意事项
1、如果你不提供构造方法,系统会给出默认构造方法
2、如果你提供了构造方法,系统将不再提供,这个时候,我们如果还想使用无参数构造方法,就必须自己提供。推荐自己给出无参数构造方法
3、构造方法也是可以重载的,重载条件和普通方法相同
这篇关于day06对象的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南