从应用的角度看类的定义

其实一直在思考怎样学习一门编程语言,也浏览过很多编程的教程,虽然教学的方式五花八门,论述的角度也各有不同,但是都有一共同点,大都是从语言的学习出发,然而我们不要忘记学习语言的目的是用,所以我认为应当从使用的角度来学习一门语言。


以下是我们经常会从书中看到的从语言的角度讲,类应当怎样定义的:

access modify class name extends implements

{
attribute
method
}

access :java语言访问控制符,可以是default/public中的一个。default表默认访问控制,即所有用default修饰的类只有在本包内才能访问。public表示公共访问控制,即所有使用public修饰的类对外完全开放,无论本包还是外包,都可以访问到这个类。
modify :java语言修饰符,可以是abstract/static/final中的一个或多个。使用abstract表示抽象类,即类中的方法至少一个是抽象的。使用static表示静态类,当类为内部类时可使用。使用final时,表示类不能被继承,即该类为继承树的最底层。
class :java语言关键字,标识定义的是“类”
name :类名
extends :继承关键字,使用extends时后面跟父类的名字,java中任何类只允许有一个父类
implements:接口关键字,在使用implements时后面跟实现接口的名字,java中一个类允许实现多个接口
attribute:类属性,也成为成员变量

method:类方法,定义类的各种行为

public class dog

{

public void speak()

{

System.out.println("wang wang");

}

}


怎么样,晕了吧……


本来文字就多,这么多的术语,如果不是对面向对象编程多少了解一点的,看完了这段都品不出滋味儿。


我们倒回java语言的创建,逆向思维一下,创建这门语言的人一定是依据需求才创建语法的不是吗,这样的话我们可以这样看:


代码书写当中,如果我们想定义一个类,一定要用某种标识来标注定义的是类,这样便出现了class


在一个项目中我们会用到各种各样的类,这样我们便用自己定义的'name'来区分并且使用这些类。


如果是一个大项目一定会有很多人协同工作,这样的话不同的人有不同的编程习惯,但是也可能定义相同名称但是不同用途的类,可是系统怎样区分这些代码呢,从而出现了。不同程序员把自己的代码打成一个包后,系统将不同程序员的包汇集在一起使用。


我们知道,一个项目中不同的程序员来实现项目的不同功能,但是如果一个程序员想要用另一个程序员打包中的代码怎么办呢,这样这些程序员就要给自己打包的代码设置访问权限,这样就出现了access


当我们写了一个类AA实现了功能A,但是我们还想基于A的基础上实现功能B,但是类AA又有确切的用途系统限制我们不能更改,这时候我们想到了写类BB来扩展AA,而如果将原有AA中的代码在BB中重写一遍感觉太麻烦,于是出现了extends ,我们用BB extends AA来实现代码的自动加载。


如果项目需求,限制你写的一个实现某功能的类不能再扩展的时候便出现了final ,系统用这个限制修饰符使这个类变成不能被继承的类,便是继承树的最底层。


我们都知道,要想使用一个类需要将其实例化,就是new一个类,在系统new的同时,会给这个类配置相关数据,但是有些类实现的功能不需要配置数据,我们又经常使用,写太多代码又麻烦,于是出现了static ,用它标识的类我们可以直接使用而不用太多的代码。


就像像苹果、橘子、梨这样的具体的东西是水果一样,我们可以把苹果、橘子、梨看作具体的类,而水果看作这种事物的总结(就是一类具有某些相同功能的东东),这样就出现了抽象abstract


比如苹果是红色的,橘子是圆的,这“红色”、“圆”是某些事物的特性,于是便出现了attribute来定义这些特性。


比如狗会叫,会跑,我们可以把叫跑看作狗能做的事情,狗可以通过做这些事情让人们喜欢,所以出现了method用来定义狗让人喜欢的方法


如果有一批类,我们需要在其中定义相同名称的方法(方法的内容不同),但是由于类太多了,我们在书写代码的时候容易忘记需要定义哪些方法,这时候出现了implements,这样在代码的编写后,我们执行代码的过程中,系统就会提示我们是否落下了某些方法没有写。而有时,这个标识也告诉系统用这个标志标识的代码用来实现怎样的功能,就好像这些功能的接口一样。


以上可以理解为JAVA语言入门时对语法的用途的理解,这样理解更加形象化,当然随着你学习的深入,在你学习的不同时期对语言的理解也是不同的,在这里希望在你起步的时候帮助到你……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值