java学习基本知识总结

蓝杰java基本知识总结:
一.java中基本八种基本数据类型
1.bit
2.byte
3.int
4.float
5.double
6.boolean
7.long
8.short
注意点:可以将long类型数据直接赋给float类型数据(在java中double和float数据类型是16进制的)
如long i=123456L;  float j=i;

二.关于对象
1.(类比于现实生活)具有具体特征和行为的事物为对象
  (java中换个说法)具有具体属性和方法某一个东西称之为对象
   即特征对应着属性,而行为对应着方法。

三.关于类
1.(类比于生活)具有相似特征和行为的一类事物的总称,称之为类
  (java中)同样特征与属性相对应,行为和方法相对应,所以java中具有相似属性和方法的一类,便是所谓的类。
      
类和对象的关系:从上述知,对象是类的一个实例化。

2.类的定义:访问修饰符 class 类名{ }
类名书写规则:类名中每个单词的第一个字母用大写。类名必须和文件名完全相同。

3.类中的属性和方法:
(1)属性:属性的定义  访问修饰符 数据类型 属性名
(2)方法:方法的定义  访问修饰符 方法返回值类型 方法名(参数列表){ 方法体}
(3)属性和方法的调用:首先必须实例化类的对象  实例化形式:类名 对象名=new 类名();  然后用对象名.属性、对象名.方法 便可调用类中属性和方法。
如:public class People{
private int age;
private void play(){
System.out.print("我在玩耍!!");
}
}

实例化对象 People peo=new People();
调用属性  int age=peo.age;
调用方法  peo.play();

四.关于接口,抽象类,以及类的继承,接口的继承、实现,抽象类的继承
1.接口的定义 访问修饰符 interface 接口名{}
注意点:(1)定义接口的访问修饰符只能是public或者是默认的(其实默认的也是默认为public)
        (2)接口中只能有常量属性,即该属性不能被改变。
(3)接口中的方法都是没有实现的方法。
(4)接口不能用来实例化对象。(接口中没有实现的方法,故实例化的对象是没有用处的,从这个角度来理解接口不能实例化对象)
2.抽象类的定义: 访问修饰符 abstract class  抽象类名{}
注意点:(1)和接口一样,抽象类也是不能用来实例化的对象的。
(2)抽象类和普通的类一样可以拥有普通属性和方法,但其能够定义抽象方法,该方法定义时要加上abstract关键字,表示抽象方法,该方法没有实现。
3.类的继承
关键字extends
如  public class A{}   
public class B extends A{}
B类便继承了A类。
(1)试问B继承到了A的什么?
当A、B同包时,A中除了private修饰的属性和方法不能被B继承,其余的都可以被继承
当A、B不同包时,只有A中public方法和属性能被B继承。
4.接口的继承
接口是不能继承类的,接口只能继承接口,并且可以集成多个接口。
5.接口的实现
从上面我们知道接口是不能实例化对象的,其方法也没有实现,那么我们就会产生这样的疑问,定义接口到底要用来干什么,或者要用什么方法来实现接口,这就涉及到了接口的实现。
关键字implements 用普通类来实现接口
如 public interface C{}
定义一个D类来实现接口C   public class D implements C{}
注意点:D类中必须实现C接口的所有没有实现方法。
同样可以用抽象类来实现接口,同样可以实现多个接口。但由于抽象类也是不能用来实例化对象的,所以最后还要用到普通类对抽象类的继承。
类继承带来的好处:
1.增加了代码的重复利用性,即减少了代码的重复书写。
2.为多态的实现奠定可能的基础。

五.关于方法重写和重载
1.方法的重写
为什么要有方法重写?
当我们用一个类去继承另外一个类的时候,我们要根据我们的需要去改变父类的某些方法,这便需要方法重写。
(1)上面我们说到类之间的继承,只有类之间存在继承关系,才有所谓的方法重写。
(2)方法重写规则:重写方法的访问修饰符必须大于父类该方法的访问修饰符,除了方法体,其他所有的都不能改变,比如方法名、参数表、方法返回值类型等等。
同样我们会有这样的疑问,当我们去重写父类的方法,但是我们同时要实现父类该方法中的功能,即要实现我们添加的功能外,父类原来的功能也必须有,这样只要在在重写方法中用super关键字调用父类的方法就行了。super表示当前类父类的对象。
2.方法的重载
为什么要有方法重载?
当一个类中有些方法功能相似,我们去定义这样的方法时,可以定义不同的方法去分别实现这些功能,但这样显得繁琐,显然这些相似的方法是有联系的。这就涉及到了方法的重载。
注意点:方法重载 必须有相同的方法名,但是他们的参数(个数,顺序,类型)必须有一个不同。

六.关于事件处理流程
组成(1)事件源(接收事件的对象)
    (2)事件对象(是按键事件还是鼠标单击事件)
    (3)事件处理器对象(感兴趣的EventListener)
     (4) 事件处理过程
比如:仿xp画板中,鼠标点击图形形状按钮,获取图形形状时,事件源是图形形状按钮,事件对象是鼠标点击事件,事件处理器对象是添加到该按钮的动作监听器,事件处理过程是从按钮上获取按钮动作命令值即表示图形形状的一个字符串,并赋值给工具类形状属性。

七.关于java中的关键字
这里只列举常用的,详见前面的关键字总结
访问修饰符 public(公有的) protected(受保护的) private(私有的)
this 表示当前类的对象
super表示当前类父类的对象
static(静态的)用static修饰的属性,方法在内存中只存在一份,当他被改变后所有对象的该属性和方法都会被改变。
final(最终的)用final修饰的属性不能被改变,用final修饰的方法不能被重写。
Package(包)
import(要引入包用到的关键字)
java中的关键字很多,在这篇总结中也涉及到了不少如上面定义类的class,定义接口的interface等等在这里就不一一列举。

七.关于数组和队列(详见前面的数组队列总结)
队列是对数组的封装操作。

八.关于泛型
泛型就相当于一个模版。
如定义泛型队列中  public class List<E>{}  
可以这样来理解,E能够代表所有数据类型,实例化该泛型队列时,当具体参数传入时,该队列便能存储该参数所指的数据类型。如 List<Student> li=new List();该队列能够存储Student类对象。
所以泛型没有数据类型限制(可以用任何数据类型,包括自定义类型) 。 

猜你喜欢

转载自lixiongzhi-m.iteye.com/blog/1576899