蓝杰学习一周总结

一、类与对象的关系分析
 代码形式:
 //自定义一个类
 public class 类名{};
 //创建对象
 类名  对象名  =  new 类名();
 1、在我理解,类就是一系列具有相同属性或者叫特征的个体的集合,例如年龄为20岁的人可以是一个类,性别为男的人可以是一个类,
 肤色相同的人也可以是一个类;
 2、那么对象就是与类相对应的那个个体,他具有类当中所有的特征,例如在年龄为20岁的人这个类中,20岁的我这个类的一个对象,在
 性别为男的这个类中,身为男性的我也是这个类的一个对象;
 3、类是抽象的,对象是对一个类的具体。通俗的说,类是看不见的,它不是某个什么东西,而对象确是实实在在的存在,看得见,摸得
 着得。 
 
 
二、继承的基本理解
 代码形式:
 //学生类继承人类
 public class Student extends Person{};
 为什么要发生继承呢???
 1、一旦发生继承关系,则子类自动继承父类中的方法及属性,即父类所能做的,子类全部能做,但反过来不是;
 2、子类在继承父类之后,可以对父类中的方法进行重写,同时也可以额外定义方法;
 3、子类是父类的一个拓展。一个子类只能有一个父类,而一个父类可以有很多子类。允许多重继承,不允许多继承
 
 
三、重载与重写的理解,区别
 重载:方法名相同,但是传入的参数的个数,类型不相同
 重写:方法名,传入的参数,类型完全相同,只是方法体不相同
 区别:重载的方法,都可以被调用,而且完成类似的任务,方法重载常用在构造方法的重载,以完成不同对象的创建
      重写方法,是子类继承父类之后,对父类中的方法进行重写,以改变或者拓展方法的实现功能。方法一旦被重
      写,那么重写之前的方法将不能被使用,以后所调用的方法均为重写之后的方法。
      
     
四、类,接口,抽象类的理解与区别
 1、类是具有相同属性特征的个体的集合,是抽象的概念,类似的很多个体,按照属性的不同,可以分为很多中不同类,
  类的使用即为创建对象以实现类的作用或者是被其他类继承;
 2、接口
  代码:
  public interface 接口名{
   //全局常量
   //抽象方法
  }
  1、类是对象的集合,接口可以成为一些类的集合,更确切的说是类的模板
   代码:
    public class 子类 implements 接口名{}
  2、接口可以被类实现,而且一个类可以同时实现很多接口,而且接口与接口之间也可以继承
  
  
五、Java中的数据类型
 1、八种基本数据类型:
  byte    8bits
  int     32bits
  short   16bits
  long    64bits
  char    16bits
  float   32bits
  double  64bits
  boolean true/false
 2、由类生成的对象类型


六、构造方法与一般方法的区别
 构造方法代码:
  public 方法名(参数1,参数2,....){}
  1、构造方法没有返回值,而其他方法必须有返回值类型或者void,同时构造方法名必须与类名完全一致;
  2、构造方法只有在创建对象时使用;
  3、构造方法与其他一般方法相比,最大的优势就是可以重载,或者说常用于重载,以创建初始化参数不相同
  的多个对象;
  4、每个类都有一个默认的无参构造方法,如果没有被重载,当此类的对象被创建时,默认调用此无参构造器,
  但是一旦被重载,默认的构造方法就不能被使用了。
  

七、常用的swing组件
 swing组件所在包
  代码:
   javax.swing.*
 常用的组件有:javax.swing.JFrame:窗体组件
     javax.swing.JButton:按钮组件
     javax.swing.JPanel:面板组件
     javax.swing.JCheckBox:复选框
     javax.swing.JColorChooser:颜色选取器
     javax.swing.JFileChooser:文件选择
     javax.swing.JLabel:标签组件
     javax.swing.JTextField:文本框组件
     javax.swing.JSlider:拉动块
     javax.swing.JTree:分层数据


八、事件监听机制的理解
 在界面处理中,当鼠标点击或者键盘输入时,系统将发出事件通知,将该事件对象通知给
 对此事件监听的事件监听器EventListener ,然后时间监听器根据发生的事件,做出相应
 反应,以满足用户的需要
  1、动作监听器代码:
   public interface ActionListener extends java.util.EventListener{
    public void actionPerformed(ActionEvent e){
     //动作发生时自动调用
    }
   }
  2、鼠标监听器
   public interface MouseListener extends EventListener{
    public void mouseClicked(MouseEvent e);

       public void mousePressed(MouseEvent e);

       public void mouseReleased(MouseEvent e);

       public void mouseEntered(MouseEvent e);

       public void mouseExited(MouseEvent e);
   
   }
  
九、数据结构之自定义队列的实现原理
 1、新建一个长度为0 的源数组
 2、队列的各种操作都是在数组与源数组之间的复制数据进行,然后再传给源数组
 3、为了是数组能够传入不同对象,所以采用了“泛型”;
 4、代码如下:
 
 
 
  /**
 * 自定义泛型队列的接口实现
 * @author Administrator
 *
 * @param <E>
 */
public interface NetJavaList<E>{
 //向队列中加入一个对象
 public void add(E e);
 //取得队列中指定位置的一个对象
 public E get(int index);
 //取得队列的长度,即队列中元素的个数
 public int size();
 //移除指定下标位置的元素
 public void remove(int index);
 //更新某个位置的元素
 public void modify(int index, E e);
 //将元素插入到某个位置
 public void insert(int index, E e);
 //移除所有元素
 public void removeAll();
}
 
 ++++++++++++++++==============+++++++++++++++++
 ++++++++++++++++==============+++++++++++++++++
 ++++++++++++++++==============+++++++++++++++++
 ++++++++++++++++==============+++++++++++++++++
 ++++++++++++++++==============+++++++++++++++++
 
 /**
 * 实现泛型队列的接口
 *
 * @author Administrator
 *
 * @param <E>
 */
public class STList<E> implements NetJavaList<E> {
 // 新建一个长度为零的源数组
 Object[] src = new Object[0];

 // 向队列中加入一个对象
 public void add(E e) {
  // 重新定义数组
  Object dest[] = new Object[src.length + 1];
  // 将对向加入到最后得位置
  dest[src.length] = e;
  // 将原数组的数据拷贝到新数组中
  System.arraycopy(src, 0, dest, 0, src.length);
  // 将新数组赋值给源数组
  src = dest;
 }

 // 取得队列中某个位置的对象
 public E get(int index) {
  Object f = src[index];
  E f2 = (E) f;
  return f2;
 }

 // 取得队列大小
 public int size() {
  return src.length;
 }

 // 移除指定下标位置的元素
 public void remove(int index) {
  // 重新定义数组
  Object dest[] = new Object[src.length - 1];
  // 将index之前的元素赋值给dest
  System.arraycopy(src, 0, dest, 0, index);
  // 将index之后的元素赋值给dest
  System.arraycopy(src, index + 1, dest, index, src.length - index - 1);
  // 将新数组赋值给原数组
  src = dest;
 }

 // 更新某个位置的元素
 public void modify(int index, E e) {
  src[index] = e;
 }

 // 将元素插入到某个位置
 public void insert(int index, E e) {
  //重新定义数组
  Object dest[] = new Object[src.length+1];
  //将index之前的元素复制到新数组中
  System.arraycopy(src,0,dest,0,index);
  //将新元素赋值给index
  dest[index] = e;
  //将之后的元素复制到新数组中
  System.arraycopy(src, index, dest, index+1, src.length - index);
  src = dest;
 }

 // 移除所有元素
 public void removeAll() {
  Object dest[] = new Object[0];
  src = dest;
 }
}

 ++++++++++++++++==============+++++++++++++++++
 ++++++++++++++++==============+++++++++++++++++
 ++++++++++++++++==============+++++++++++++++++
 ++++++++++++++++==============+++++++++++++++++
 ++++++++++++++++==============+++++++++++++++++
 
 
 5、测试代码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值