码迷,mamicode.com
首页 > 编程语言 > 详细

是Java课程总结呀

时间:2020-06-07 12:46:36      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:抽象方法   main   种类   决定   开始   之间   引入   语法   多个   

Java课程总结

  在这学期开始前,对java是充满好奇的,知道它是一个面向对象的编程语言,可以用它来制作各种不同的软件,甚至在我小时候玩一些手机上的小游戏片头都是java的经典咖啡标志,于是我抱着好奇和探索的心情进入了本学期的java学习,第一节课我任然清晰地记得老师讲的是java的过去、java的现在和java的未来,java不仅仅是现在主流的编程语言,而在未来更有很好的前景,例如在手机、企业级系统应用、嵌入式设备等等,而且现在市场也非常需要这些相关人才,所以学好java这门编程课是非常之重要的,这不仅影响到了现在自己的编程能力,甚至还会影响到以后的工作;接下来讲到了eclipse的使用,在安装玩应用后我自己上网百度还有在B站搜索各种使用的教程,摸索了一个下午后对eclipse已经有了一定的使用能力,这样也可以赶在老师教学前自己做一些小程序来先熟悉java这个编程语言,当然,还是从“hello world”开始,再到一些简单循环算法的单步调试,记得那天一个人捣鼓了一个下午,也算是满足了自己的一部分好奇心吧。

第一部分学习了java的类结构和main函数、基本类型和运算符、选择和循环结构还有自定义函数等java的基础知识,虽说是基础知识,但是java的编程思想与C语言大不一样,java是面向对象的编程语言而C语言是面向过程的编程语言,所以在开始时有些理解上的问题,就是脑袋听懂了但是在实战时总会拐不过弯来,但是这个的解决办法也很简单,就是多练、多听、多学,理解书上的源代码,看懂很重要,理解每一步都代表着什么、为什么需要这一步,而不是照着打一遍就说是实现了、理解了,这也是给将要学习java的小伙伴的小建议,经过几次大作业的磨练也渐渐习惯了面向对象的编程思想。

第二部分学习了继承、抽象类和接口、转型、多态和契约设计;下面我来谈谈自己的一部分理解,首先继承,为什么要用继承呢?这个其实很好理解,例如有以下两个对象:

企鹅:属性(姓名,id),方法(吃,睡,自我介绍)

老鼠:属性(姓名,id),方法(吃,睡,自我介绍)

如果要对这两个对象建立两个类那么应该是这样:

技术图片

public class Penguin {

    private String name;

    private int id;

    public Penguin(String myName, int  myid) {

        name = myName;

        id = myid;

    }

    public void eat(){

        System.out.println(name+"正在吃");

    }

    public void sleep(){

        System.out.println(name+"正在睡");

    }

    public void introduction() {

        System.out.println("大家好!我是"         + id + "号" + name + ".");

    }

}

技术图片

public class Mouse {

    private String name;

    private int id;

    public Mouse(String myName, int  myid) {

        name = myName;

        id = myid;

    }

    public void eat(){

        System.out.println(name+"正在吃");

    }

    public void sleep(){

        System.out.println(name+"正在睡");

    }

    public void introduction() {

        System.out.println("大家好!我是"         + id + "号" + name + ".");

    }

}

从这两断代码可以看出他们之间存在大量的重复,因为他们的属性和方法都是一样的,这就造成了代码的重复和臃肿,一旦需要修改某些方法或者加上某些属性就得对每个类进行修改,如果是一两个对象就还说得过去,但是如果是对一个班级的同学操作那就十分啰嗦和麻烦了,这个时候就可以引入继承,做一个Animal的公用父类包含老鼠和企鹅的属性和方法,然后再企鹅和老鼠的类extends一下Animal就继承了Animal的属性和方法了,需要修改的话也只需要更改父类的内容就行了。

父类:

public class Animal {

    private String name; 

    private int id;

    public Animal(String myName, int myid) {

        name = myName;

        id = myid;

    }

    public void eat(){

        System.out.println(name+"正在吃");

    }

    public void sleep(){

        System.out.println(name+"正在睡");

    }

    public void introduction() {

        System.out.println("大家好!我是"         + id + "号" + name + ".");

    }

}

接下来是抽象和接口,抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法必须用 abstract 关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用 abstract 关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。抽象类就是为了继承而存在的,如果你定义了一个抽象类,却不去继承它,那么等于白白创建了这个抽象类,因为你不能用它来做任何事情。对于一个父类,如果它的某个方法在父类中实现出来没有任何意义,必须根据子类的实际需求来进行不同的实现,那么就可以将这个方法声明为 abstract 方法,此时这个类也就成为 abstract 类了。

接口中可以含有 变量和方法。但是要注意,接口中的变量会被隐式地指定为 public static final 变量,而方法会被隐式地指定为 public abstract 方法且只能是 public abstract 方法,并且接口中所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法。接口是一种极度抽象的类型,它比抽象类更加"抽象",并且一般情况下不在接口中定义变量。

区别:抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;一个类只能继承一个抽象类,而一个类却可以实现多个接口。

接下来是多态,说到多态不得不提到封装和继承:

a.  继承性:程序中有父类和子类,子类继承了父类的某些特点而子类自己也可以有独有的特征。

b. 封装性:顾名思义,封装性我理解为就是将程序的某些东西隐藏和包装起来,而外界没有办法直接访问,只能通过某些特定的方式才能访问,我曾经看过一篇文章写过一个例子能够加深理解,我们可以把茶的味道设为该茶最重要的特性之一,但是我们无法直接的感受到它的味道,而是需要通过“泡”这个动作将茶的味道释放在水里,这样我们才能尝得到茶的味道,如果转化成编程思想那就是味道是私有的,我们不能直接把茶吞进肚子里,而只能通过成员函数“泡”才能访问到味道。

c.  多态性:通过上网查阅文章我有了基本的概念,其中有一篇我觉得说的比较好,“多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性”。通过他的讲述我的理解是我们可以通过一个父类就能够引用不同的子类,这就是多态,但是我们只有在运行的时候才会知道引用变量所指向的具体实例对象。

第三部分学习的是java的异常和异常处理以及java的数据结构;首先是try,catch:

使用 try 和 catch 关键字可以捕获异常。try/catch 代码块放在异常可能发生的地方。try/catch代码块中的代码称为保护代码,使用 try/catch 的语法如下

try

{

   // 程序代码

}catch(ExceptionName e1)

{

   //Catch 块

}

Catch 语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try 后面的 catch 块就会被检查。如果发生的异常包含在 catch 块中,异常会被传递到该 catch 块,这和传递一个参数到方法是一样。

接下来是throw:如果一个方法没有捕获到一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。也可以使用 throw 关键字抛出一个异常,无论它是新实例化的还是刚捕获到的。

最后是finally:finally 关键字用来创建在 try 代码块后面执行的代码块。无论是否发生异常,finally 代码块中的代码总会被执行。在 finally 代码块中,可以运行清理类型等收尾善后性质的语句。

最后学习了JavaFX和基础的动画,成果如下:

技术图片

 

技术图片

 

 技术图片

 

 技术图片

 

是Java课程总结呀

标签:抽象方法   main   种类   决定   开始   之间   引入   语法   多个   

原文地址:https://www.cnblogs.com/Lucas-QTFY/p/13060055.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!