如何做网站的教程视频,中国logo设计公司排名,wordpress docker安装,wordpress代替系统这篇文章#xff0c;我们来介绍java中的类与对象
目录
1.面向对象的介绍
2.类的设计与使用
2.1 类和对象
2.1.1 如何定义类
2.2 类的注意事项
3.封装
3.1 private关键字
4.this关键字
5.构造方法
6.标准JavaBean
7.对象内存图
8.成员变量与局部变量 1.面向对象的…这篇文章我们来介绍java中的类与对象
目录
1.面向对象的介绍
2.类的设计与使用
2.1 类和对象
2.1.1 如何定义类
2.2 类的注意事项
3.封装
3.1 private关键字
4.this关键字
5.构造方法
6.标准JavaBean
7.对象内存图
8.成员变量与局部变量 1.面向对象的介绍
下面我们来对面向对象思想进行一下说明。
面向对象就是写程序的套路。面向拿、找对象能干活的东西面向对象编程就是拿东西过来做对应的事情。
下面举例说明 问为什么用面向对象
答这与我们生活中的实际思维有关。在实际生活中中当我们需要解决一个问题时我们一般就会去找能解决这个问题的人或物即找能解决问题的对象。所以使用面向对象编程可以使程序更简单更易理解
问面向对象编程学些什么
答 学习获取已有的对象并使用学习自己设计对象并使用 2.类的设计与使用
下面我们来学习类与对象的设计和使用
2.1 类和对象
类设计图是对象共同特征的一种描述是一种抽象
对象是真实存在的具体东西
在java中必须先设计类再new出对象
2.1.1 如何定义类
下面我们来学习一下如何定义类
定义类的基本格式如下 public class 类名 {//成员变量(代表属性一般为名词)//构造器见下方//成员方法代表行为一般为动词//内部块后面奖//内部类后面讲}
实例如下 创建对象的方法
类名 对象名 new 对象名()
实例如下 使用对象的方法
访问属性对象名.成员变量
访问行为对象名.方法名(...) 2.2 类的注意事项
javabean类用来描述一类事物的类里面不写main方法
测试类编写main方法的类我们可以在测试类中创建Javabean类的对象并进行赋值使用
注意事项
类名首字母建议大写、英文、有意义满足驼峰命名法不能使用关键字满足标志符规定一个代码文件中可以定义多个类但是只能有一个类是public修饰的public修饰的类名必须是java代码的文件名类的成员变量完整的定义格式为修饰符 数据类型 变量名 初始化值但是我们定义类的时候一般不赋值系统会指定默认值
3.封装
面向对象的三大特征封装继承多态
封装的原则对象代表什么就封装对应的数据并提供数据对应的行为。
解释
上面的话其实不太好理解。下面用具体实例的说明一下封装
例如需求人画圆请对这个对象进行面向对象的设计。首先我们肯定知道画圆是一个方法。那么请问画圆这个方法是放在人这个类中还是圆这个类中答案是放在圆这个类中。这就是封装下面提供两种解释。解释一画圆需要知道圆的半径等相关数据而这些数据在哪呢在圆这个类中所以就把这个方法放到圆这个类中。这也是上面所说的对象代表什么就封装对应的数据并提供数据对应的行为。解释二我们来分析一下这个题目人画圆涉及到两个事务人和圆我们按照封装的思想一个类中只包含这个类的所有共同属性也就是只包含这个类的东西人这个类就包含人的东西圆这个类就包含圆的东西画圆归根结底还是落在圆这件事务上所有画圆就放到圆这个类中。说白了封装就是把相互纠缠的事物彻底分开彼此打包组装起来A是AB是B尘归尘土归土互不干扰如有需要进行调用如何调用后面会讲。
封装的好处
让程序变的简单干什么事找什么对象直接调用对象的方法java封装了需要方法类便于我们的使用
3.1 private关键字
private
是一个权限修饰符可以修饰成员成员变量和成员方法被其修饰的成员只能在本类中访问
如下图所示 问那怎么访问被private修饰的成员呢
答通过访问器与修改器
如下图所示 set方法给成员变量赋值方法用public修饰
get方法对外提供成员变量的值 方法用public修饰
这也是封装的一部分
除了这个private关键字还有publicdefaultprotected
后面把这部分内容讲完了会讲一下java这四大权限修饰符
4.this关键字
首先我们来看一段代码 如上图的第9行和第10行第9行方法的参数中有关参数名为brand与我们类的成员变量重名了。那么就出现了问题你在这个方法中调用brand变量到底调用的是哪一个呢不知道实际上调用的是参数brand当然我们也可以不讲这个参数命名为brand可以换个名字但是我们java的命名规则为见名知意所以也就只能命名为这个了。那么怎么办呢
为了解决上述的问题java引入了this关键字。
在讲this关键字之前我们先讲一下成员变量与局部变量。
成员变量定义在类中方法外的变量
局部变量定义在方法中或方法内的变量
当成员变量与局部变量重名时我们如果调用这个变量有一个原则叫就近原则意思是谁离调用出近就用谁。根据就近原则我们可以知道如果我们在上述代码的第十行中写brand它调用的就是方法中的参数brand。为了调用我们的成员变量this关键字就起作用了。
简单来说就是在一个类中this就代表这个类的对象我们在this后面可以点出这个类的所有成员变量和成员方法this相当于是测试类中的这个类的实例化对象。
this的本质方法调用者的地址值
解释我们知道你创建一个类你只是创建了一个模板你并不能使用它要使用它就必须初始化它即创建它的对象。OK你现在创建了它的对象了这个对象有地址你通过这个对象来调用这个类中的方法。假设你调用的这个方法中有一个this关键字此时当代码执行到这条语句时系统就会把你的对象的地址赋给this然后this进行一系列的操作。就是这么简单。这就是this的本质是方法调用者即对象的地址值。
5.构造方法
构造方法也叫构造器构造函数
作用在创建对象的时候给成员变量进行初始化的创建时赋值的
构造方法的格式 修饰符 类名参数{方法体}
特点
方法名与类名相同大小写也一致没有返回值类型连void都没有没有具体的返回值不能由return语句
执行时机
创建对象时由虚拟机调用不能手动调用构造方法每创建一次对象就会调用一次构造方法
实例如下图所示 第9——第17行三个方法全为构造方法。
注意当我们设计完类的时候系统会默认给我设置无参的构造方法当时一旦我们手写了构造方法那么原本的无参构造方法就会被覆盖 6.标准JavaBean
下面来说一下标准的javabean前面说过一点但是不具体这里具体说一下
标准Javabean的要求
类名要见名知意成员变量使用private修饰提供至少2个构造方法无参构造方法带全部参数的构造方法成员方法提供每个成员变量的访问器与修改器如果还有其他的行为也应该写上
下面来看一下一个标准的javabean类 public class User {private String name;private int age;private String IdNumber;private String address;public User(){}public User(String name, int age, String idNumber, String address) {this.name name;this.age age;IdNumber idNumber;this.address address;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getIdNumber() {return IdNumber;}public void setIdNumber(String idNumber) {IdNumber idNumber;}public String getAddress() {return address;}public void setAddress(String address) {this.address address;}
}7.对象内存图
下面我们来介绍一下对象的内存图
内容回顾
java的内存分配为栈堆方法区本地方法栈寄存器
栈中存方法和方法中的内容堆中存new出来的方法区中放一个类的字节码文件即当我们要用一个类的时候这个类的字节码文件就会被加载到方法区中本地方法栈和寄存器与硬件有关不多赘述。 下面我们根据代码来讲解一下吧 当我们在测试类中输入红框中的代码并运行时JVM至少要做以下7件事
加载class文件即等号左边的User申明局部空间变量 即等号右边的LiSi在堆中开辟一块空间即等号右边的new默认初始化对堆中对象初始化显式初始化对堆中对象初始化构造方法初始化将堆中空间的地址赋值给等号左边的局部变量LiSi即等号的作用
下面我们就对上面的代码进行一下内存分析 这图画的很清楚了大家可以参考这图来理解
8.成员变量与局部变量
成员变量类中方法外的变量
局部变量方法里面的变量
如下图所示 成员变量与局部变量的区别