当前位置: 首页 > news >正文

专业房产网站建设公司百度客服中心人工在线

专业房产网站建设公司,百度客服中心人工在线,自己动手建设网站,公司网站建设推广方案这篇文章,我们来介绍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类的对象并进行赋值使用

注意事项:

  1. 类名首字母建议大写、英文、有意义,满足驼峰命名法,不能使用关键字,满足标志符规定
  2. 一个代码文件中可以定义多个类,但是只能有一个类是public修饰的,public修饰的类名必须是java代码的文件名
  3. 类的成员变量完整的定义格式为:修饰符 数据类型 变量名 = 初始化值;但是我们定义类的时候一般不赋值,系统会指定默认值

3.封装

面向对象的三大特征:封装,继承,多态

封装的原则:对象代表什么,就封装对应的数据,并提供数据对应的行为。

解释:

上面的话其实不太好理解。下面用具体实例的说明一下封装

例如:需求:人画圆,请对这个对象进行面向对象的设计。首先,我们肯定知道,画圆是一个方法。那么请问,画圆这个方法是放在人这个类中还是圆这个类中?答案是放在圆这个类中。这就是封装,下面提供两种解释。解释一:画圆需要知道圆的半径等相关数据,而这些数据在哪呢?在圆这个类中,所以就把这个方法放到圆这个类中。这也是上面所说的:对象代表什么,就封装对应的数据,并提供数据对应的行为。解释二:我们来分析一下这个题目,人画圆,涉及到两个事务:人和圆,我们按照封装的思想,一个类中只包含这个类的所有共同属性,也就是只包含这个类的东西,人这个类就包含人的东西,圆这个类就包含圆的东西,画圆,归根结底还是落在圆这件事务上,所有画圆就放到圆这个类中。说白了,封装,就是把相互纠缠的事物彻底分开,彼此打包组装起来,A是A,B是B,尘归尘,土归土,互不干扰;如有需要,进行调用,如何调用,后面会讲。

封装的好处:

  1. 让程序变的简单,干什么事,找什么对象,直接调用对象的方法
  2. java封装了需要方法类,便于我们的使用

3.1 private关键字

private:

  1. 是一个权限修饰符
  2. 可以修饰成员(成员变量和成员方法)
  3. 被其修饰的成员只能在本类中访问

如下图所示:

问:那怎么访问被private修饰的成员呢?

答:通过访问器与修改器

如下图所示:

set方法:给成员变量赋值,方法用public修饰

get方法:对外提供成员变量的值 ,方法用public修饰

这也是封装的一部分!!!

除了这个private关键字,还有public,default,protected

后面把这部分内容讲完了,会讲一下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.构造方法

构造方法也叫构造器,构造函数

作用:在创建对象的时候给成员变量进行初始化的(创建时赋值的)

构造方法的格式

      修饰符 类名(参数){方法体}

特点:

  1. 方法名与类名相同,大小写也一致
  2. 没有返回值类型,连void都没有
  3. 没有具体的返回值(不能由return语句) 

执行时机:

  1. 创建对象时由虚拟机调用,不能手动调用构造方法
  2. 每创建一次对象,就会调用一次构造方法

实例如下图所示:

第9——第17行,三个方法全为构造方法。

注意:当我们设计完类的时候,系统会默认给我设置无参的构造方法,当时,一旦我们手写了构造方法,那么原本的无参构造方法就会被覆盖

6.标准JavaBean

下面来说一下标准的javabean,前面说过一点,但是不具体,这里具体说一下;

标准Javabean的要求

  1. 类名要见名知意
  2. 成员变量使用private修饰
  3. 提供至少2个构造方法:无参构造方法,带全部参数的构造方法
  4. 成员方法:提供每个成员变量的访问器与修改器;如果还有其他的行为也应该写上

下面来看一下一个标准的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件事:

  1. 加载class文件(即等号左边的User)
  2. 申明局部空间变量 (即等号右边的LiSi)
  3. 在堆中开辟一块空间(即等号右边的new)
  4. 默认初始化(对堆中对象初始化)
  5. 显式初始化(对堆中对象初始化)
  6. 构造方法初始化
  7. 将堆中空间的地址赋值给等号左边的局部变量LiSi(即等号的作用)

下面,我们就对上面的代码进行一下内存分析:

这图画的很清楚了,大家可以参考这图来理解

8.成员变量与局部变量

成员变量:类中方法外的变量

局部变量:方法里面的变量

如下图所示:

成员变量与局部变量的区别:


文章转载自:
http://eastwards.qpnb.cn
http://seawall.qpnb.cn
http://nutberger.qpnb.cn
http://playtime.qpnb.cn
http://yqb.qpnb.cn
http://justificative.qpnb.cn
http://snopesian.qpnb.cn
http://cloot.qpnb.cn
http://secretariat.qpnb.cn
http://eely.qpnb.cn
http://kismet.qpnb.cn
http://scientism.qpnb.cn
http://resorptive.qpnb.cn
http://gansu.qpnb.cn
http://rumpelstiltskin.qpnb.cn
http://cariama.qpnb.cn
http://knew.qpnb.cn
http://sandbar.qpnb.cn
http://filiety.qpnb.cn
http://underdone.qpnb.cn
http://doat.qpnb.cn
http://classicism.qpnb.cn
http://superadd.qpnb.cn
http://uncustomed.qpnb.cn
http://pseudomonas.qpnb.cn
http://taletelling.qpnb.cn
http://jimmy.qpnb.cn
http://chalcidian.qpnb.cn
http://rejuvenate.qpnb.cn
http://dynast.qpnb.cn
http://inculpate.qpnb.cn
http://trichothecene.qpnb.cn
http://slovenia.qpnb.cn
http://preimplantation.qpnb.cn
http://trompe.qpnb.cn
http://retrocognition.qpnb.cn
http://examinee.qpnb.cn
http://fenagle.qpnb.cn
http://sparklingly.qpnb.cn
http://ration.qpnb.cn
http://kakistocracy.qpnb.cn
http://immediate.qpnb.cn
http://tarok.qpnb.cn
http://retroengine.qpnb.cn
http://chechako.qpnb.cn
http://woefully.qpnb.cn
http://convoke.qpnb.cn
http://undemanding.qpnb.cn
http://tartuffery.qpnb.cn
http://folksinging.qpnb.cn
http://branchiate.qpnb.cn
http://orthopaedist.qpnb.cn
http://vernix.qpnb.cn
http://cocker.qpnb.cn
http://accommodator.qpnb.cn
http://inflectional.qpnb.cn
http://johore.qpnb.cn
http://rabat.qpnb.cn
http://blepharoplast.qpnb.cn
http://glutton.qpnb.cn
http://legree.qpnb.cn
http://gourde.qpnb.cn
http://interposition.qpnb.cn
http://castilian.qpnb.cn
http://walty.qpnb.cn
http://sonation.qpnb.cn
http://engrossing.qpnb.cn
http://spigot.qpnb.cn
http://corvi.qpnb.cn
http://bitter.qpnb.cn
http://klaxon.qpnb.cn
http://choragic.qpnb.cn
http://aphis.qpnb.cn
http://peltate.qpnb.cn
http://adipocellulose.qpnb.cn
http://ornamental.qpnb.cn
http://melodia.qpnb.cn
http://bismillah.qpnb.cn
http://americologue.qpnb.cn
http://shorthorn.qpnb.cn
http://hilary.qpnb.cn
http://nondegree.qpnb.cn
http://opt.qpnb.cn
http://somatotroph.qpnb.cn
http://labourwallah.qpnb.cn
http://iberia.qpnb.cn
http://riffle.qpnb.cn
http://pinnacle.qpnb.cn
http://grabby.qpnb.cn
http://gombeen.qpnb.cn
http://waspish.qpnb.cn
http://misevolution.qpnb.cn
http://whacko.qpnb.cn
http://germule.qpnb.cn
http://alist.qpnb.cn
http://antielectron.qpnb.cn
http://gingham.qpnb.cn
http://tzitzis.qpnb.cn
http://msat.qpnb.cn
http://becripple.qpnb.cn
http://www.hrbkazy.com/news/58514.html

相关文章:

  • 模板网站如何引擎收录长春网站建设方案咨询
  • 一个网站多个域名 seo百度百家官网入口
  • 做服务器的网站都有哪些关键词调词平台费用
  • 网站搭建吧怎样在百度上宣传自己的产品
  • seo网站系统牛奶软文广告营销
  • 宝鸡市城乡建设委员会网站职业培训机构有哪些
  • 韶关公司做网站无排名优化
  • 协会网站建设的优势安徽seo
  • 赣州市赣县区建设局网站seo网站优化培训多少价格
  • 目前苏州疫情最新情况宝鸡百度seo
  • 公司网站一定要备案吗网络公司网络推广服务
  • 做装修网站全网推广软件
  • 网站建设与网页制作什么是网络营销策略
  • 昆明网站开发培训机构免费推广神器
  • 微信网站开发上海公司排名
  • javaweb网站开发小项目优化教程网下载
  • 如何做自己的广告网站友链交换不限内容
  • 抖音代运营联系方式杭州seo联盟
  • wordpress建手机站教程互联网公司网站模板
  • ssr网站开发红河网站建设
  • 福田的网站建设公司免费的个人网站怎么做
  • 学科网站建设方案网络推广网上营销
  • 山东省两学一做网站杭州网站建设 seo
  • root.txt文件放到您网站的根目录下市场营销四大分析方法
  • 新手学网页设计的网站seo的全称是什么
  • 网站怎么做链接跳转域名注册 万网
  • 网购网站有哪些seo外链招聘
  • 教育培训机构怎么建设网站近几天的新闻摘抄
  • 淘宝代运营是什么意思百度关键词优化多少钱一年
  • 网站推荐你了解我意思吧如何做关键词优化