java基础-什么是面向对象,作用,设计对象并使用,封装,this关键字,构造方法,标准JavaBean,对象内存图,成员变量、局部变量的区别
一、什么是面向对象
java是一种面向对象的编程语言,而面向对象是一种编程思想和方法,
它将数据和操作数据的方法组合在一起,形成一个对象,然后通过对象之间的交互实现程序的功能。
1、java中面向对象的思想主要包含以下几个方面:
1、封装:将属性和方法封装成一个类,并且对外只暴露必要的接口,隐藏内部实现细节,以提高安全性和可维护性。
2、继承:通过继承,子类能够继承父类的属性和方法,从而简化代码,提高可重用性。
3、多态:通过多态性,同样的方法可以被不同的对象调用和执行,从而提高了代码的灵活性和可扩展性。
4、抽象:通过抽象,隐藏方法的具体实现细节,只保留方法的声明,提高代码的可读性和可维护性。
2、为什么要用面向对象(它的作用)
1、更好的代码重用性:通过继承和多态性,可以更容易地重用已有的模块,从而节省时间和开发成本。
2、更好的可维护性:面向对象编程可以将系统模块化、封装和抽象,隐藏内部实现细节,从而降低了系统的复杂度,易于修改和维护。
3、更好的扩展性:面向对象编程使得系统易于扩展,通过继承和多态可以方便地增加新的功能。
4、更易于理解:由于面向对象编程强调模块化和封装,使得代码更易读、易懂。开发人员可以将系统分解成多个独立部分,每个部分都有自己的职责和行为。
5、更好的代码复杂度管理:面向对象编程可以将大的复杂问题拆分成多个小的问题,有利于进行分布实现和管理。
二、设计对象并使用
在java中要根据设计图来实现代码程序,而java中的类就代表设计图。
1、类和对象是什么?
类(设计图):是对象共同特征的描述。
对象:是真实存在的具体东西。
在java中,必须先设计类,才能获得对象。
2、如何定义类?
定义:
public class 类名{
1、成员变量(代表属性,一般是名词);
2、成员方法(代表行为,一般是动词);
3、构造器;
4、代码块;
5、内部类;
}
例如:
3、如何得到类的对象?
类名 对象名=new 类名();
4、如何使用对象?
访问属性:对象名.成员变量
访问行为:对象名.方法
5、定义类的补充注意事项
。用来描述一类事物的类,专业叫做:JavaBean类。
在javabean类中,是不写main方法的。
。标准的javabean类:
- 类名需要见名之意
- 成员变量使用private修饰
- 提供至少两个构造方法(无参有参)
- 成员方法,提供每一个成员变量(属性)对应的setXX()和getXX(),如果还有其他行为,也需要写上。
。在以前,编写main方法的类,叫做测试类。
我们可以在测试类中创建javabean类的对象并进行赋值调用。
。类名建议采用驼峰命名方
。一个java文件中可以定义多个class类,但是只能有一个class类是用public修饰,而且public修饰的类名必须成为代码文件名。
实际开发中建议还是一个文件定义一个class类。
。成员变量的完整定义格式是:修饰符 数据类型 变量名称=初始化值;
一般无需指定初始化值,存在默认值。
。对象的成员变量的默认值规则
数据类型 | 明细 | 默认值 |
基本类型 | byte、short、int、long | 0 |
float、double | 0.0 | |
boolean | false | |
引用类型 | 类、接口、数组、String | null |
三、封装
1、什么是封装?
封装:将属性和方法封装成一个类,并且对外只暴露必要的接口,隐藏内部实现细节,以提高安全性和可维护性。
原则:对象代表什么,就得封装对应的数据,并提供数据对应的行为。
2、封装的优点和好处
让编程变得很简单,有什么事,找对象,调方法就行。
3、如何让封装变得更安全
添加权限修饰符private
private可以修饰成员(成员变量和成员方法)
被private修饰的成员只有在本类中才能被访问。
4、就近原则
在封装的类中,数据会分别赋值个局部变量和成员变量,而就近原则就是局部变量优先与成员变量。
例如:
5、this的作用?
this可以用来区分成员变量和局部变量。
四、构造方法
1、构造方法的定义和作用
定义:构造方法也叫构造器、构造函数。
作用:在创建对象的时候,虚拟机会自动调用构造方法,作用是给成员变量进行初始化赋值的。
2、构造器的格式
public class 类名{
修饰符 类名(参数){
方法体;
}
}
3、构造器的特点
。方法名与类名一致。。
。没有返回值类型,连void都没有。
。没具体的返回值(不能由return带回返回值。
。在创建对象的时候有虚拟机调用,不能手动调用构造方法。
。没创建一次对象,就会调用一次构造方法
4、构造方法定义的注意点
。如果没有定义构造方法,系统将会给出一个默认的无参构造方法。
。如果定义了构造方法,系统将不再提供默认的构造方法。
五、对象内存图
java内存分配介绍
。栈
。堆
。方法区
1、一个对象的内存图
创建一个对象时,会在内存里面做以下七个步骤:
Sutdent s=new Student();
- 加载class文件
- 申明局部变量
- 在堆内存中开辟一个控件
- 默认初始化
- 显示初始化
- 构造方法初始化
- 将堆内存中的地址值赋值给左边的局部变量
2、多个对象的内存图
3、两个变量指向同一个对象内存图
4、this的内存原理
5、基本数据类型和引用数据类型的区别
基本数据类型:
byte、short、int、long、float、double、char、boolean
特点:数据值存储在自己的空间中,赋值给其他变量,也是赋的真实的值。
引用数据类型:
任意对象,数组
Student s=new Student();
关键字new会在堆内存中开辟一块真实数据值空间,Student s则会在栈内存中开辟一个地址值,这个地址值连接堆内存真实的数据值空间。
特点:
数据值是存储在其他空间中的,自己的空间中存储的是地址值。赋值给其他变量,赋的是地址值。
6、局部变量和成员变量的区别
区别:
区别 | 成员变量 | 局部变量 |
类中位置不同 |
类中,方法外 |
类中,方法中 |
初始化值不同 | 有默认初始化 | 没有,使用之前需要完成赋值 |
内存位置不同 | 堆内存 |
栈内存 |
生命周期不同 | 随着对象的创建而存在,随着对象的消失而消失 | 随着方法的调用而存在,随着方法的运行结束而消失 |
作用域 | 整个类中有效 | 当前方法有效 |
作者:×不知该怎么√ 收藏一直进行,学习从未开始!地址https://www.cnblogs.com/hqh2021/p/17403601.html