浅谈JAVA学习(一)

相信大家对JAVA的基础知识已经相当的熟悉了,那么我们再来过一遍。

首先对于各种基本语法你熟悉了吗?if for switch while等基本控制语句,各种变量的应用和之间的相互转换。问:怎样将字符串数字转换为整形的?

String number=10;

int num=Integer.parseInt(number);

基本的内容在已经学过了,我们需要着重理解的是类和方法的使用。学会试着使用API文档。

类是一种特殊的数据类型,而方法及属性都可看做是其内部的元素。既然说了是一种特殊的类型,故使用也不一样,因此我们需要创建该类的对象,这样对于一个类,我们可以通过创建多个对象来使用。就像int a ;int b;我们可以创建两个int 类型的变量,同是一种类型但却各有自己的含义。由于类中有属性和方法,因此我们就使用对象.属性或方法来使用。当然我们可以定义静态的方法或属性,这样我们在使用的时候就可以不创建其对象来使用。对于静态的方法和熟悉一般都是定义经常使用的内容,例如你的数据库连接类。

当然在经过了这么久的学习之后大家对于这些应当及其的熟悉了,那接下来说一下JAVA的高级特性,JAVA的三大特性不知你是否掌握。封装,继承,多态。

封装:为了程序的安全性,我们常常将一个类中的属性定义成私有属性private,而将公共的使用方法定义成public,这样我们在使用个类的时候,将无法改变其内部,而只使用其定义好的方法。这是封装特性的简单应用。回想一下我们所知道的JAVA类库包,我们能够调用他的方法,但是却不能够改变其属性。

继承:说实话是一个想用好很不容易的概念,简单说,我们现在有类A,类B,类C,各有自己的属性和方法,由于需求,需要几种类都有一种共同的方法或属性,那么如果我们将其继承一个公共类就可以了,当然也可以在每个类当中加入需要的内容,虽然功能上不影响什么,但却出现了冗余代码。这里就可以体会到如何提高代码的重用率了吧!其实无论哪种特性,都是为了使得程序更加使用和维护,以及开发的便捷性。

多态:一种形式,多种表示,在一个类中我们可以定义多个方法名字相同,但却其参数类型不同。我们称之为重载。

一个子类继承父类,并且将父类的方法重新定义,我们叫做方法的重写。

在介绍了三大特性之后,接下说一下类库包和接口抽象类。

首先JAVA的几个常用的类库包你熟悉吗?lang包 util包 sql包 io包 text包。lang包和util包是必须熟悉的,sql包的常用类是学JSP的基础,至于IO包呢是很重要的,然而我们学习是注重的是WEB开发,减少了桌面开发,故使用的较少了,但是还是应当熟悉的,只要掌握常用的文件读取文件类库就可以了。

text包的指定形式输出你熟悉了吗?

比如输出当前日期(字符串格式):

SimpleDateFormat format=new SimpleDateFormat(“yyyy-MM-dd HH:mm:dd”);

String time=format.format(new Date());

System.out.println(time);

顺便提一下线程的问题,线程是不好写的东西,WEB开发当中用的很少,因为已经都封装好了,平时我们基本很少写,现在我也基本写不出什么线程问题,但是面试的时候喜欢问,所以看一些常问的面试熟悉一下就可以了。

接下来的是这第一部分最后的内容接口、抽象类。我觉得也是即为重要的内容,在现在开发的过程当中,往往是面向接口编程。

首先来回顾一下接口和抽象类的定义:抽象类由abstract定义,抽象类当中可以定义一些方法没有具体的实现内容,由它的实现类来完成。接口interface是抽象类的特例,接口内只有属性和未实现内容的方法。接口给我们定义了一套规范,在一个项目当中,将接口定义好,使用的时候通过接口调用,这样我们无需考虑其实现是如何完成的,只需要知道接口实现的结果就可以了,而当需要修改时,我们只修改实现类的内容,无需修改内容,这样便于程序的维护和操作。

在使用JAVA时无非就是在调用一系列的接口,常用的开源框架也是使用他人定义好的接口。

 

举个例子来说明一下接口吧!

现在有一个类Orange和一个类Apple和一个接口Fruit

接口定义了一个getFruit()方法

public interface Fruit

{

public void getFruit();

}

 

 

实现类Orange

public class Orange implements Fruit

{

public void getFruit()

{

System.out.println("我是Orange");

}

}

实现类Apple

public class Apple implements Fruit

{

public void getFruit()

{

System.out.println("我是Apple");

}

}

 

如果想要Orange

Fruit fruit=new Orange();

fruit.getFruit();

如果想要Apple

Fruit fruit=new Apple ();

fruit.getFruit();

这样我们只需要通过接口调用方法就可以了。

虽然简化了一些,但是会觉得这个东西很多余,我在刚开始学接口的时候也是很迷糊,认为这个东西很不实用,其实我们无法发现接口好处的原因是所写的东西太少,只有几个类,反而用了接口很麻烦,当在一个大项目当中,多人合作,需要使用别人写的东西的时候,如果在大量的类中找方法是很恐怖的,有了接口就方便多了,但是像刚刚的那种写法也是不易用的,你会发现即使使用接口也的知道其实现类。这好像并不方便呀。为了解决这个问题,我们可以使用很经典的工厂模式来解决,呵呵用到模式了,现在应该明白一点点模式了吧!模式就是为了解决某一类问题而设计出来的解决方案。

工厂模式有静态,动态两种,动态很麻烦也不易写,恩,就先说一下静态工厂吧!

工厂模式其实就是利用接口来管理接口的实现类,我们还可以利用工厂来管理工厂。

现在有一个工厂接口IFruitFactory和接口实现类FruitFactory

public interface IFruitFactory

{

 

public Fruit getOrange();

 

public Fruit getApple();

}

接口实现类

public class FruitFactory implements IFruitFactory

{

public Fruit getOrange()

{

return new Orange();

}

public Fruit getApple()

{

return new Apple();

}

}

 

好了,结合上面的简单接口,我们现在通过工厂来管理接口;

如果想要Orange

IFruitFactory iFruit=new FruitFactory();

Fruit fruit=iFruit.getOrange();

fruit.getFruit();

如果想要Apple

IFruitFactory iFruit=new FruitFactory();

Fruit fruit=iFruit.getApple();

fruit.getFruit();

看现在我们无需知道接口的实现类就可以了,通过工厂接口来管理实现累就方便了很多,但是在大的工程里面,我会发现每个类都需要一个工厂,虽然使用方便,但是太繁琐了,有了问题肯定有其解决方法,现在流行的框架Spring的IOC依赖注入就解决了这个问题。这个以后在说吧!要熟悉List的Iterator循环输出。List接口在今后的JSP当中使用的很多,主要用来存储对象。

讲到接口呢,就顺便说一下可存储对象的接口吧!常用的就是List,Set,Map

要熟悉这几种接口的实现类是哪些,具体有什么区别。

到此呢!这一部分就写这么多吧,有什么需要补充的给我说,我在写吧!

在这一连串讲下来我是习惯于沿着一类问题走下去,这也是我喜欢的学习方式,把要学习的技术来源和问题弄清,沿着解决问题的路线走下去,会搞清楚整个知识体系,自己也渐渐会懂得每种技术的优与缺。

最后呢说一下关于怎样学习,个人认为就是多看,多想,多练。我这个人比较懒的,所以写的练得比较少,我的原则是一定要先想出来有一定的思路,在去写,去练习。一般熟悉的东西可以不写,但是第一次接触的东西一定要练练手,不能手生。同时要多看看别人写的代码,学习他人的良好编写习惯。无论做什么都是循序渐进的事情,或许一个问题能让你很久不能明白,但是一旦明白了,就是一个飞跃。希望大家共同努力吧!

在掌握了基础之后,就要开始追求代码的精简及其效率。参考API,用最简练的方法高效的解决问题。

http://www.sy80.com.cn/blog

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值