Java笔记
来源:互联网 发布:数据挖掘目的 编辑:程序博客网 时间:2024/06/06 08:43
一.object类:所有类的超类
1.object.equals(); 比较两个对象的引用是否相等
2.getClass()返回对象的类
3.hashCode()方法:散列码,对象导出的一个整型值。
String s="ok"; String t="ok"; s的散列码跟t相等 。字符串散列码是由内容导出的
Stringbuilder sb=new String(s); StringBuilder tb=new String(t);字符串缓冲sb散列码不等于tb
4.toString()方法:返回表示对象的字符串
Point a=new Point(); System.out.print(" "+a);
字符串+a会自动调用toString方法或者是System.out.print(a);也会直接调用a.toString.
二.泛型数组列表:动态解决运行时动态更改数组的问题
ArrayList<类名> 对象名=new ArrayList<>();菱形语法
1.add方法将元素添加到数组列表:staff对象 staff.add(new Employee(参数1,参数2.....)) 或者使用索引参数 staff.add(n,e)在指定位置插
remove方法 类似于add方法删除作用
2.staff.endureCapacity(100)=ArrayList<Employee> staff=new ArrayList<>(100);确定数组列表的初始容量 注意:列表容量跟数组大小不是一个概念
3.staff.size:返回列表中元素个数等价于.length方法
4.最后调用staff.trimToSize方法:确定列表大小回收不用空间
5.访问列表元素get(),set()方法:add跟set不同
6.toArrayf方法:拷贝数组元素到另一个数组a中 staff.toArray(a);
三、枚举类
变量的值在一个集合内,自定义一个枚举类型,该变量只能取这个类型声明中的某个枚举值。
例子:enum Size{SMALL,MEDIUM,LARGE,EXTRA_SIZE }; Size s=Size.MEDIUM;
四,接口:类的模板,描述类的功能。
注意:在具体实现接口时,必须把方法声明为public。
不能用new实例化一个接口类。要这样使用:class TimePrint implments ActionListener{}; ActionListener listener=new TimePrint();
回调:指出当某个情况出现时的执行动作。
例声明一个定时器:package 接口与回调;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import javax.swing.JOptionPane;
import javax.swing.Timer;
class TimePrint implements ActionListener{//响应
@Override
public void actionPerformed(ActionEvent listener) {
// TODO 自动生成的方法存根
Date now=new Date();
System.out.println("the time is:"+now);
Toolkit.getDefaultToolkit().beep();
}
}
public class TimerTest {
public static void main(String[] args) {
// TODO 自动生成的方法存根
ActionListener listener=new TimePrint();
Timer t=new Timer(10000,listener);
t.start();
JOptionPane.showMessageDialog(null, "quit program?");
System.exit(0);
}
}
四.GUI编程
JFrame:主框架类
将组件添加到框架中,需要定义一个JComponent类的扩展类并覆盖其中的paintComponent()方法。再调用add.(组件对象)方法添加到面板中。
例:class DrawComponent extends JComponent{
public void paintComponent(Graphics g) {
code for darwing }
}
当窗口需要重新绘图时,会引发执行所有组件的paintComponent(Graphics g)方法。但是不能人为的调用此方法。
java2D图形类库:一般内部计算选择double精度计算,
从java se 2版本过后,paintComponent(Graphics g)会自动获得一个 Graphics2D对象,只需要进行一次类型转换。
public void paintComponent(Graphics g){
Graphics2D g2=(Graphics2D) g;
code for darwing
}
//
package draw;
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
/*
*version 2016.04.20
*author by qyp
*/
public class DrawTest {
public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame frame=new DrawFrame();
frame.setTitle("DrawTest");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class DrawFrame extends JFrame{
public DrawFrame(){
add(new DrawComponent());
pack();
}
}
class DrawComponent extends JComponent{
private static final int WIDTH=400;
private static final int HEIGHT=400;
public void paintComponent(Graphics g){
Graphics2D g2=(Graphics2D) g;
//绘画一个矩形
double leftX=100;
double topY=100;
double width=200;
double height=150;
Rectangle2D rect =new Rectangle2D.Double(leftX,topY,width,height);
g2.draw(rect);
//绘画一个内接于该矩形的圆
Ellipse2D ellipse=new Ellipse2D.Double();
ellipse.setFrame(rect);
g2.draw(ellipse);
//绘画一条直线
Line2D line=new Line2D.Double(leftX,topY,leftX+width,topY+height);
g2.draw(line);
//以矩形的中心为圆心绘画一个圆
double centerX=rect.getCenterX();
double centerY=rect.getCenterY();
double radious=150;
Ellipse2D circle=new Ellipse2D.Double();
circle.setFrameFromCenter(centerX, centerY,centerX+radious,centerY+radious);
g2.draw(circle);
}
}
- java笔记
- JAVA笔记
- java笔记
- java笔记
- JAVA笔记
- java笔记
- Java 笔记
- java笔记
- java 笔记
- java笔记
- java笔记
- java笔记
- Java笔记
- java笔记
- java笔记
- Java笔记
- java笔记
- java笔记
- iOS 隐藏多余的cell
- ListView的使用(一)
- ActiveX控件 姿态仪 高度仪 水平仪...
- Expander
- JS Base64 3Des加密解密(荐)
- Java笔记
- 贵人礼-情人节微信送玫瑰小游戏总结
- android MVP 开发模式
- activiti自定义流程之整合(五):启动流程时获取自定义表单
- iOS UItableView显示问题
- hadoop datanode 无法启动之 namenode ID 不一致解决办法。
- zookeeper安装及配置
- 【bzoj 2243】【SDOI2011】染色 题解&代码(C++)
- ubuntu12.04编译安装opencv2.4.8过程记录