Hello world!

Hello world!

我打算用我们Java一族经典的问候方式来作为我们之间的第一句问候语!

大家好,我是类!超级无敌大帅哥花泽类的类。

我是创建Java对象的模板。至于我是怎样的模板,这要看我的程序员爸爸是怎么写我了。首先我和人类一样,我有名字——类名。正如人类的名字,我的名字通常首字母要大写就像SteveJobs,不过姓名之间没有空格,因为根据我们的Java法典,名字只能由字母、数字、_或者$组成,并且不能以数字开头。至于为什么这样,你要问程序员爸爸了。

我们类可以拥有很多种类型的变量,它们分别是局部变量、成员变量、类变量。

局部变量是个待在方法、构造方法或者语句块里从不出来的骨灰级死肥宅,它的声明和初始化都是在方法中,方法一旦结束,就自动销毁见光死。

成员变量是定义在我们类中,但在方法体之外的变量,他在我们创建对象的时候实例化。

类变量也声明在类中,方法体之外,但它必须贴上static的标签。并且在使用它时候,只需要使用 类名.变量名 即可。

我们每个类中都有一个构造方法,即使程序员爸爸并没有显示地为我们定义,Java族的基因给我们提供一个默认的构造方法。构造方法对于我们而言就像是双手,因为只有调用构造方法,我们才能创建并初始化出一个对象。构造方法的名称必须和我们同名,我们可以有很多个构造方法。

图片

构造方法示例

我们就像是一个个小型工厂,生产出同一类型的产品。我们的产品是对象。而对象将方法和属性耦合在一起。

若想创建一个对象,首先要跟Java族打声招呼,声明一个对象,包括对象名称和对象类型。其次需要制造工程师new出马,我们才能创建一个对象,最后会调用构造方法来初始化对象。比如我们的Puppy类:

图片

创建对象的例子

我们的子女是子类,如果想继承我的财产,必须通过extends关键字来表示:

图片

想继承我的遗产吗?成为我的宝宝吗?用extends!

在Java法典中,一个子类只能继承一个父类,是啊,作为一个类,我们不能太贪婪!到处喊爸爸像什么样子!

通常子女们只能继承爸爸的非私有属性和方法,什么叫私有,什么叫非私有呢?这里牵扯到律法中的权限修饰符了,它们是每个类、方法、属性都可以选择的标签。

标签有三个,分别是private私有的,protected受保护的,public公共的,什么标签也没有贴的就是不使用任何修饰符即default默认的。

我们类只有public和default可供选择。通常类们居住在一个一个的包中,贴上public的类非常热情好客,通过导包可以被不同包的其他类访问,但是什么标签都没有贴的default的类比较内向,只能被同包的类访问。

对于我们的属性和方法,四个都可以选择,通常我们会把自己比较私密的属性和方法贴上private,这样这些属性和方法只能在本类使用,即便是我们的子女也无法继承,毕竟,就算是人类也不想把自己穿过的小内裤等等私人的东西或者一些不可告人的小癖好传承给子女吧!并且,通过private修饰符,可以隐藏我们类的实现细节并且保护我们的数据。

而我们希望继承给我们的子女的属性或者方法,我们会给它们贴上protected的标签,这样只要是我们的子女,不论它们是否与我们居住在同一个包,都能够使用我们的方法和属性。当然如果一个类和我们居住在同一个包中,即使他不是我们的子女,也能够使用protected的方法或者属性。

public和default两个标签的作用对于方法属性和类是一样的,public的方法属性无论是否同包无论是否是我们的子女,都能使用,而default的方法属性只能由同包的类所使用。

图片

 

不过时常有些很酷的丁克类,他们自愿到医院实施 final手术,手术完成后,他们就再也不能有自己的宝宝,再也不能被继承!潇洒走一生!

同时我们的子女——子类,并非循规蹈矩之辈,他们有些特立独行,不满于我们给予他们的属性方法,会添加上自己独特的方法和属性,成为不一样的烟火。同时对于我们给予的某些方法,如果无法满足他们的需求,他们常常会自己动手改造,重写这些方法。

我们之中还存在着一群抽象派的类,他们天性自由,不拘一格,从不实例化对象,他们贴着abstract的标签,他们这样就有资格拥有abstract的方法,抽象方法没有定义,它们没有方法体,方法名后面直接跟一个分号而不是花括号。

图片

抽象方法只包含一个方法名,而没有方法体。

并且如果哪个子类继承了抽象方法,就必须把这些抽象方法统统实现,所谓实现,就是重写父类的抽象方法。如果子类不想实现也可以,那子类必须也是个抽象派(声明为抽象类)。

最后,怎么能忘记我们的老祖宗Object类呢?我们身上都流淌着他的血液。而读者们,身为炎黄子孙,什么时候也讲讲你们的故事?

更多有意思的技术文章请关注作者头像 点击 关注 更多惊喜等着你。

 

转载于:https://my.oschina.net/u/3731401/blog/1603013

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值