学Java有感(终)

大一的下半学期逐渐步入尾声,我的Java学习也以告一段落。经过一个学期的学习,不能说是融会贯通,但也算小有心得。下面就来谈谈我对这个学期Java学习的感受吧!

在大一的上半学期,我接触到了一个计算机语言——C语言。从而开始了我的程序员之旅,到了现在我已经掌握了两门语言。

先来谈谈java里的抽象类

抽象类的关键好处在于 能够实现面向对象设计的一个最核心的原则OCP(Open-ClosedPrinciple)。因此当我有一部分内容是不想让子类修改的,但是子类又都通用,同时各个自乐又有自己的特点,那么就适合使用抽象类。

在面向对象领域,抽象类主要用来进行类型隐藏。 我们可以构造出一个固定的一组行为的抽象描 述,但是这组行为却能够有任意个可能的具体实现方式。这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。模块可以操作一个 抽象体。由于模块依赖于一个固定的抽象体,因此它可以是不允许修改的;同时,通过从这个抽象体派生,也可扩展此模块的行为功能。熟悉OCP的读者一定知 道,为了能够实现面向对象设计的一个最核心的原则OCP(Open-Closed Principle),抽象类是其中的关键所在。符合开发封闭原则,我可以对抽象出来的类进行扩展,但是只要是这个抽象类的子类,那么他必然能够。从语法层面上讲,java单继承多实现,而接口可以多实现。

再说说java里的Main方法

Java中的main方法,是一个java应用程序的入口,无论一个java的应用多么复杂庞大,或是多么的小,只要他是一个可以运行的java程序那么必然就要有一个main方法。main方法的定义格式通常固定如下:

piblic static void main(String[] agrs){

}

void是java的main方法的返回值,理解返回值应该从方法调用者的角度去理解,java的main方法的调用者是java虚拟机,而java虚拟机在启动java程序时,只需要调用main方法,而不需要此方法返回任何的值,因此,main方法被设计为void的。

Java设计了几个访问修饰符,包括:private,protected,public。 在Java中声明为public的任何方法或变量都可以从该类的外部访问。 而JVM访问main方法显然不是在类的内部访问,因此main方法需要定义为public的方法。

关于static关键字我们知道的是,static关键字修饰的方法,可以不用通过创建一个类的实例,而是直接通过类名直接去访问。(以上专业知识均不为原创)

在了解了main方法后,我们才算步入Java的大门。下面讲解几个我入门时遇到的问题

1.类,对象,方法

按照我的理解,类你可以理解为一个大的统称,比如说:人,树,车,狗等等;而对象则是具体到它们之间的每一个,比如一个叫张三的人,一条叫小白的狗,一棵特指的树;而方法就是这个特指的对象干了什么事,比如张三去上厕所,小白去吃饭..这样的话是不是很好理解?

2.如何创建类

在Java中类呗规定用class来创建

比如:class Name;这样就新建了一个叫Name的类。当然在class前面你还可以有修饰比如;public。在这里要注意,类的名字必须是以驼峰方式来命名,就是首字母大写。

3.如何创建对象

创建对象的格式:[public|private|protected] [static] [final] 类型 方法名(形参){

        方法体;

        return表达式;}

其中如果是viod修饰,则改方法不用返回值,若不是的的话则需要return一个值(不能返回表达式);

4.如何定义属性

定义属性的格式:[ public | private | protected ] [ static ] [ final ] 类型 成员名

在这里我附上一些特殊的类型:

Boolean类型,成员变量的默认值是false。

Int类型,成员变量的默认值是0。

Double类型,成员变量的默认值是0.0。

String类型,成员变量的默认值是null。

Char类型,成员变量的默认值是\u0000

你们可能会发现,在属性和方法里面都有一个static,这里就有一个新知识,静态和非静态。

静态变量:从属于类,可以在不同的对象里面调用

若遇到其他问题可自行百度。

最后在来讲讲Java三大特性:封装,继承和多态

封装

首先,属性能够描述事物的特征,方法能够描述事物的动作。封装就是把同一类事物的共性(包括属性和方法)归到同一类中,方便使用。封装也称信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些接口使其与外界发生联系。也就是说用户无需知道内部的数据和方法的具体实现细节,只需根据留在外部的接口进行操作就行。

封装的好处:

1)        实现了专业的分工

2)        良好的封装能够减少耦合

3)        类内部的结构能够自有修改

4)        可以对成员进行更精确的控制

5)        隐藏信息,实现细节

封装的步骤

1)        修改属性的可见性来限制对属性的访问

2)        为每个属性创建一队赋值和取值方法,用于对这些属性的访问

3)        在赋值和取值方法中,加入对属性的存取限制

继承

Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。JAVA不支持多继承,单继承使JAVA的继承关系很简单,一个类只能有一个父类,易于管理程序,父类是子类的一般化,子类是父类的特化(具体化)

继承所表达的就是一种对象类之间的相交关系,它使得某类对象可以继承另外一类对象的数据成员和成员方法。若类B继承类A,则属于B的对象便具有类A的全部或部分性质(数据属性)和功能(操作),我们称被继承的类A为基类、父类或超类,而称继承类B为A的派生类或子类。

继承避免了对一般类和特殊类之间共同特征进行的重复描述。同时,通过继承可以清晰地表达每一项共同特征所适应的概念范围——在一般类中定义的属性和操作适应于这个类本身以及它以下的每一层特殊类的全部对象。运用继承原则使得系统模型比较简练也比较清晰。

Java继承的特征

1)继承关系是传递的。若类C继承类B,类B继承类A(多继承),则类C既有从类B那里继承下来的属性与方法,也有从类A那里继承下来的属性与方法,还可以有自己新定义的属性和方法。继承来的属性和方法尽管是隐式的,但仍是类C的属性和方法。

2)继承提供了软件复用功能。若类B继承类A,那么建立类B时只需要再描述与基类(类A)不同的少量特征(数据成员和成员方法)即可。这种做法能减小代码和数据的冗余度,大大增加程序的重用性。

3)继承通过增强一致性来减少模块间的接口和界面,大大增加了程序的易维护性。

多态

方法的重写、重载与动态连接构成多态性。

Java之所以引入多态的概念,原因之一是它在类的继承问题上和C++不同,后者允许多继承,这确实给其带来的非常强大的功能,但是复杂的继承关系也给C++开发者带来了更大的麻烦,为了规避风险,Java只允许单继承,派生类与基类间有IS-A的关系(即“猫”is a “动物”)。这样做虽然保证了继承关系的简单明了,但是势必在功能上有很大的限制,所以,Java引入了多态性的概念以弥补这点的不足,此外,抽象类和接口也是解决单继承规定限制的重要手段。同时,多态也是面向对象编程的精髓所在。 (专业知识均来自网上)

行文最后,谈谈我学习JAVA的自身感受。

都说计算机难,要秃头。所谓外行看热闹,内行看门道。在自身亲自学习完后,确实学习计算机,软件这几类专业。它需要一定的硬性要求,有些思路你想不出就是想不出,打破脑袋还是不行。所以,学习这种专业需要一定的智慧。还有重要的一点,你需要足够的细心和耐心,毕竟动辄几百行上千行代码,但凡出现一丝纰漏都会导致程序运行不了(亲身体验,我曾因为一个符号的错误,纠结了一下午)确实很麻烦。

总之学过了,我也可以自豪的说,在这场Java“战斗”中我坚持下来了,俗话说的好:坚持就是胜利!

 

posted @ 2020-06-07 15:43  与代码的不解之缘  阅读(185)  评论(0)    收藏  举报