java学习笔记一

时间:2023-02-25 11:33:39

                                    引言 

  今天在图书馆借了一本java的学习书籍,开始了java的学习。其实在暑假的实训的时候,项目就是在LINUX下利用java来编程,只是那时候时间太过于仓促,根本就没来得及学就开始做了,在做的过程中也仅仅是在现有的框架下修改函数,实现只功能,可以说完全不需要java的编程经验都可以胜任。但是在那个项目当中,无时无刻不体现了强烈的面向对象,封装等重要思想,而且看起来没有c和c++那么苦涩,所以不禁引起了自己的兴趣~~~编程语言没有优劣之分,找到属于自己的就可以

  所以希望自己在这里记录下每天学习java的一点心得,或者是自己对其有所留意的地方

java中的重要思想

   首先无法避免要谈的就是面向对象的三大要素:封装,继承与多态。在java里面,有已经有许多现成的类(预定义类)可以用,或者是包(里面集成了具有某方面特性的类),在程序头可以通过import.packege.classname 来包含想要引用的类,类似于或者c++的包含某些库的头文件,我们也可以自己开发某些package,包含进来以供使用

        protected 修饰的方法或者变量,只能在本类或者在子类里面使用,外部类无法访问,friendly是方法缺省的修饰语,可以也只可以在同一个包里面被使用

   this用来表示本方法所在的类的实例

   一个类所定义的方法必须要被该类的实例化对象才可以调用,但是如果该类是静态方法则不然(static修饰),静态方法可以直接被类名所调用而无需实例化,但是这样无疑破坏了程序的封装性,所以还是要慎重使用。

       说到了实例化,就不得不说,每个对象的实例化都是该对象的一个引用,就是真实的内存位置。这样子,貌似就不会再像c++那样,被一堆指针所困扰。

   继承的问题(extends),一个类只可以继承于一个父类(就像一个人只能有一个亲爸爸?)不可以多重继承,其实这样子也可以尽量减少由于多重继承而带来的混乱。

  说道了继承,必须要提到的就是抽象类和抽象方法,说起来会很拗口。抽象类里面可以有抽象方法和非抽象方法,抽象方法所在的类必然是抽象类。抽象方法只是一个函数名,并没有函数体,抽象类和抽象方法可以高度体现了对现实的建模,抽象类可以看做是一个工具类,他仅仅是说明,有这么一个类,他有这些那些的属性行为,什么属性行为呢?各个子类根据自己去实现吧。所以子类必须要实现抽象父类的抽象方法,要不它还是抽象类,因为抽象方法被你原封不动继承过来了,而抽象方法又必须在抽象类中~~乱了~~对了,抽象类中的非抽象方法是完全允许要具体的方法体的。

  接口(interface标记) 我们把子类的相同特性可以归纳到基类里面,吧基类看做是对概念(或者实体)的归纳,同样的,我们可以把相同的功能点归纳到接口里,所以接口就可以看做是“对功能的归纳”,interface 有类的变现形式,但是规定不能设置方法体,这样的限制条件,使得接口只能用于归纳抽象的功能点,而不能用来定义具体的实现细节。把具有相同性质的方法都归纳到一个接口里面,这样所有实现这个接口的类而生成的类,都应当具有接口所定义的功能,当然咯,各自的实现细节会不一样(就像都是动物叫声这个方法,implements这个接口的不同动物类应该具有叫这个功能,但可以叫不同的声音嘛),对了,不同于类的继承,对接口的实现可以多重(动物除了叫,还可以吃喝的,并且不会因为多重实现而有所混乱)。通过接口,我们可以把具有相同功能的类归纳到一起管理,比如,在程序功能模块设计的时候,可以把诸如文件读写,数据库连接功能以接口的形式管理,从而通过各个接口类的集合再组合在一起实现具体的业务逻辑。嗯,想是这样想,还得实践实践看看效果如何

     感觉抽象类和接口都很好的体现了抽象和封装的思想,至于一个类是通过继承基类,还是实现接口来编写,还得看具体情况才定,看是强调功能的实现呢,还是对象的更多细节的描述而定吧(这个还得在以后的实践中慢慢体会)

     唉,第一天的体会貌似就这么些了,都是些很基本的概念,而且还不知道自己理解得对不对。而且好像也没有人来看我的博客的,也无法得到大家的指出。也罢也罢,弯路必然是要走的了,学一门语言,语法会很重要吗?我只是一掠而过算了。大多都八九不离十,等到动真刀真枪的时候看来又要吃亏了。明天的任务是多态,应该与C++的相似吧,还要看下java的内置数据结构类型,貌似很强大和好用,如果时间允许的话,还了解下异常和IO,接下来就会是多线程这一块。不知道现在算不算囫囵吞枣,一知半解就过。自己是这样想的,这些可以先过一遍(怎么说c和c++,数据结构和算法都各学了一学期,不好,但是也不算太入门级的了),然后可以跟着一些稍大点的例子去继续学习和巩固,再慢慢体会和加深学习~~~纸上得来终觉浅,绝知此事要躬行......