Java类

类是对象的模板,既然说对象是模拟现实生活中的灵活扩展性,那么这些都仅仅只是虚拟的东西。我们怎样才能把这虚拟的东西给实现出来?比如设计月饼我们需要把要求都想好,这些要求仅仅只是你大脑里的想法,要想把月饼样式实现出来,我们就得去刻想好样式的一个模板,然后用模板把月饼做出来。

我们要把构造好的想法抽到程序里面去那么也需要一个模板把他给实现出来,这个模板就是类,类就是对象的模板。如图6.41所示:

图6.41

变量申请在类里面就是属性,比如你在超市里面叫顾客,你在公司里面叫总经理。所以变量在类里面就升级成了属性,但这也仅仅只是一个名称叫法而已。

万事万物为对象,拿到什么就能说出他里面有什么,比如笔,笔他的属性有颜色,有类型,有粗细。功能有能够写字,能够画画,写代码等。比如键盘,键盘属性有颜色,有类型,有重量,功能有可以敲代码,可以玩游戏。

现实生活中的东西都可以把他的属性和行为描述出来,衣服属性有面料,尺寸等,行为有能够穿,能够取暖等这就是行为。万事万物为对象,那么他都可以说出他的行为和属性,行为我们用方法描述,属性我们用变量去描述,所以这就是一个类,描述了对象里面该拥有的一些东西。

类是把我们大脑里面想的东西形成了代码,那么代码又如何把他形成对象呢?那么就需要new出一个对象,如图6.42所示:

图6.42

什么是new?new就是新建的意思,就是将这个Computer类新造一个对象,造对象的过程需要经过内存进行分配存储。

new对象紧紧只是new Computer();这一句有用,前面的跟new对象完全没有一点的关系,new对象真正的就是new Computer。前面的意思是我声明了一个变量,变量的名称叫c,准备等待new好的对象交给变量c。

对象new的时候他会在内存里进行分配一些存储的数据,分配完会再把对象拿出来交给这个变量,这个变量就指向了这片对象内存,这个变量就相当于内存的操作者,就相当于这个对象的代表。new对象的过程如图6.43所示:

图6.43

首先他询问Dog类是否加载,加载好之后那么就开始分配内存先给name分配一个内存地址,然后给age分配内存地址,分配好这些存储大小之后,就nwe出来一个对象,这个对象指向了这些属性。new对象就是将属性的内容分配到内存里面去,分配完毕之后在把内存交给了我们的变量d,变量d就指向了内存的地址。他每new一次重新分配一次,new几次就分配多少个,new就是新生成,new就是新建。如图例题6.44所示:

图6.44

我们把对象new好了之后他就开始分配属性占用内存,首先name和age的内存设置好之后归对象的拥有,对象里面包含了name和age然后再把对象的地址交给变量d,变量d就拿到了这个对象的地址,变量d跟new对象没有任何关系只是用来接收对象的地址。

对象里面的内容如何去访问和调用?这是一个Cat类,里面有name、age这2个属性,还有一个show方法。首先Cat c = new Cat(); 然后又 Cat c1 = new Cat(); 一共new了两个对象。创建了2只猫,那么他在内存里地址是如何分配的?如图6.45所示:

图6.45

Cat c=new Cat();在new对象的时候,他首先实例化里面的属性,所以就为name、age各分配了一个空间。我们分配了2个属性的存储空间,这2个存储空间交给对象管理,然后把这个对象交给了变量c ,c就指向了这个对象的地址。

我们又new了一个对象,又在内存里面开辟了2个属性name、age这2个属性属于新new出来的对象地址,然后又声明了一个变量叫c1,c1指向了这个新new出来的对象地址。我们要访问这个对象那就需要拿着变量c1.属性名[点是访问的意思]比如要访问这个对象的name属性那么就需要[c.name]如图6.46所示:

图6.46

这个点在Java里面是属性和方法的访问符,所以拿着c.一下就是访问了此对象的属性。点在包名里面还可以用作为分割符。

无论你一个类new多少遍,每个对象所new出来的时候,他里面的属性都是独一一份的,不可混搭在一起,他的属性是各自自己的。

那么方法放哪呢?方法他不需要分配内存,因为方法在用的时候才会执行,不用的时候就不会执行,所以方法是不需要分配的。

对象之间的赋值问题,如果new了2个对象每个对象都有一个name属性c.name=”笔记本”; c1.name=”台式机” c=c1; 打印c.name的结果为:台式机。如图6.47所示:

图6.47

为什么会打印台式机?c1等于c就相当于把c1的对象的指向交给了c,以前c的指向断掉重新指向c1的对象。所以c现在的对象就是c1的对象,所以c.name现在对象的name就是台式机。

类里面的成员问题:万事万物为对象,把现实生活中的所有东西都看作为对象去做。既然说万事万物为对象那么类也是一个对象,因为类是由一个米字和大子组成,类是对象的模版那他就是模版对象。就好比做月饼,月饼要用磨子去做,那么磨子也是一个对象,他是磨子对象。所以类是来造就对象的,是对象的一个模版,我们要对象里面的一个东西,就要去类里面去声明对象才会拥有。

类他也是一个对象,对象拥有自己的属性和行为方法的,那么类也应该拥有他自己的属性和方法。类的属性和方法分为2类:属性分为静态属性和实例属性,静态属性也叫类属性,实例属性也叫对象属性。方法分为静态方法和实例方法,静态方法也叫类方法,实例方法也叫对象方法。

对象有2个名称,可以说是对象也可以说是实例都是一回事。类里面称之为静态,所以在申请的时候就有2个部分一个是静态成员和实例成员。静态成员就是类成员,类的方法和属性就是模版的方法和属性。

对象可以有千千万万个,但是在Java里模版只能有一个对象。模版的方法叫做静态方法和静态属性,给对象设计的方法可以叫做实例方法也可以叫做实例属性。

类创建的叫做实例等于new对象有2种说法,new叫实例化就是将类实例化成对象,所以在类创建的可以说是实例也可以叫对象。

为什么类只能有一个对象,因为类是一个模版,模版不可能有多个,如果有多个就乱了,所以类只能有一个对象。静态是类的声明,因为类他也是一个对象,就会有属性和方法,但是他的属性和方法叫做静态。静态只有一份,因为类的对象只有一个而且还会给对象进行公开使用。

模版所造就出去的对象可以说是他的孩子,模板为母亲,一个模版可以造就千千万万个对象出来,每个对象都可以享用模版里面的功能,因为在分配的时候都给了权限。

静态属性和静态方法都需要加个static关键字这就是静态的属性与方法。实例的就是去掉static就是实例的属性和方法了。如图6.48所示:

图6.48

加了static就是类的属性和类的方法,区别就是对象都可以访问静态的属性和静态的方法如图6.49.所示:

图6.49

Test t1 = new Test();首先加载对象Test的内存,里面有一个type属性,这是属于Test类的属性。然后开始分配name和age的存储空间给了对象,这个对象同时又指向了type属性,为什么又执行了他?因为Test是模版,模版里面一些静态的东西都可以使用,所以就直接指向了type属性。也就是等于对象里面有一个type属性,同时拿类的时候,类也有type属性,他们都有type属性。然后又new Test(); Test又开始创建内存,分配了name和age的内存。有分配了一个对象,这个对象指向了name和age同时又指向了type。然后声明了2个变量,c1和c2。c1指向了这个对象,c2指向了那个对象。

图6.49中的打印结果是钢材,因为静态一份对象可以公用静态的对象,访问静态的成员,但是静态的成员是不可以访问对象的任何成员的。所以访问的都是同一份。

第一静态成员类被开始的第一次会被加载。第二静态成员可以被对象访问,但是访问的都是同一份。第三我们new千千万万个对象时候,他直接会对静态的成员自动产生引用的关系。如图6.490所示:

图6.490

                                                                                                                        技术分享:www.kaige123.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容