一、类与对象的关系分析
代码形式:
//自定义一个类
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、测试代码
分享到:
相关推荐
【标题】"蓝杰学习笔记备份1"涵盖了多个IT领域的知识点,主要集中在源码解析和工具使用方面。从标签来看,这些笔记可能包含了对软件...对于想要提升技术深度和广度的人来说,"蓝杰学习笔记备份1"无疑是一份宝贵的资源。
《蓝杰JavaScript学习笔记》是一份综合性的JavaScript学习资料,主要涵盖了JavaScript在网页动态操作、DOM操作以及事件处理等方面的基础知识。这篇笔记通过多个实例文件,如`dynamicCreateTable.htm`、`...
蓝杰实训课程专注于讲解这一技术,旨在帮助技术人员掌握手机定位背后的业务知识和技术背景。 首先,手机定位技术已经深入人们的日常生活,它既带来了便利,如导航服务、紧急救援定位,也可能引发隐私问题。了解这些...
资源讲了一个使用java socket编写FTP client 的实例,可以学习java socket编程的基本步骤和原理
IBM-robocode是一个开源项目,它为开发者提供了一个教育性的编程环境,旨在教授基础的编程概念、算法设计和策略制定,同时也是一种有趣的方式来学习和实践计算机科学。 在压缩包中,我们看到几个关键文件和目录: ...
蓝杰网关代码可能是一个第三方实现的CMPP服务器,它可以帮助开发者快速搭建CMPP环境进行测试和开发。通常,这样的网关会包含服务器端的处理逻辑,如接收和解析CMPP报文、转发短信、处理状态报告等。开发者可以通过...
做为java分布式计算的基础框架的RMI体系,是javaEE结构的基础技术. 本课件全面讲解了RMI的一般实现,特殊问题解决及与sping的组合应用. 1.分布式计算的起因及基本原理 2.RMI体系结构 3.RMI服务器实现及编码 ...
本文将围绕"微博是这样炼成的:山寨QQ项目源码下载大全"这一主题,深入剖析两个关键文件——蓝杰版QQ客服端.jar和蓝杰版QQ服务器端.jar,揭示其背后的技术原理和实现机制。 首先,我们要理解QQ作为一款即时通讯软件...
- `蓝杰cmpp项目视频说明.txt`:这个文件可能是蓝杰公司关于CMPP项目的视频教程的文字说明,包含了项目实施过程中的指导和最佳实践。 5. **移动通信系统架构**:了解中国移动的网络架构,包括GSM、GPRS、EDGE、...
BlueBlood-OS这是一个类UNIX的64bit操作系统,从0开始完整的实现一个OS本篇README.md面向开发者上手指南以下指南将帮助您在本地机器上安装和运行该项目,进行开发和测试。关于如何将项目部署到在线环境,请参考部署...