相信大家对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
相关推荐
浅谈Java技术学习方法.pdf
浅谈IO学习经验,浅谈IO学习经验,浅谈IO学习经验,浅谈IO学习经验,浅谈IO学习经验
浅谈Java字符串Java开发Java经验技巧共11页.pdf.zip
主要介绍了java获取UUID与UUID的校验,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
浅谈Socket编程及Java实现,学习java socket编程
Java内部类是Java言语的一个很重要的概念,《Java编程思想》花了很大的篇幅来讲述这个概念。但是我们在实践中很少用到它...本文试图谈一谈让这个幕后英雄也有用武之地的四个场景,希望引起大家对使用Java内部类的兴趣。
java包的使用。在自定义的java包中调用其他的类对象的方法。这是我今天下午的学习心得。希望可以给大家点帮助。
Java分布式应用学习笔记06浅谈并发加锁机制分析
不管我们使用何种语言开发,一旦程序发生异常,日志是一个很重要的数据。但是并不是意味着打印的日志越多越好,我们需要的是有用的日志。下面小编来和大家一起学习以下知识
主要介绍了浅谈java随机数的陷阱,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了浅谈JAVA 内存流的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了浅谈JAVA如何生成UUID唯一标识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了浅谈Java向下转型的意义,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了浅谈java 重写equals方法的种种“坑”,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了浅谈Java实现面向对象编程java oop,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了浅谈Java如何实现一个基于LRU时间复杂度为O(1)的缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了浅谈Java内存区域划分和内存分配策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了浅谈Java并发编程基础知识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了浅谈Java中是否直接可以使用enum进行传输,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了浅谈Java中真的只有值传递么?文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧