「java定制类」java定制安装
今天给各位分享java定制类的知识,其中也会对java定制安装进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
怎么用java写一个类
一个java标准类的必备要素如下:
//定义类的归属,即包名
package com.test;
//定义类名,public关键字为可选,不过如果为public,则源文件必须与类名一致.
public class Test{
//定义类属性
private int id;
//构造方法
public Test(int id){
this.id = id;
}
//get,set方法
public void setId(int id){
this.id = id;
}
public int getId(){
return this.id;
}
//自定义方法
public void doMethod(){
//TODO 方法的返回值和参数,依据业务逻辑
}
}
//以上为一个最简化的java类.可以增加静态方法,比如程序入口
java定制排序
文件名:Frame1.java
关键代码:
//选择排序法函数
public void select_Sort(int[] num)
{
int i,j,MX;
int temp;
for(i = 0; inum.length-1; i++)
{
MX = i ;
for(j = i+1 ; jnum.length; j++)
{
if(num[MX] num[j])
MX = j ;
}
temp = num[i];
num[i] = num[MX];
num[MX] = temp;
}
}
//插入排序函数
public void insert_Sort(int[] data)
{
int i,j,mx;
int key ;
for(i=1; i data.length -1; i++)
{
key = data[i];
mx = i;
for(j= i-1;j0;j--)
{
if(keydata[j])
{
data[j+1] = data[j];
mx = j ;
}
}
data[mx]=key;
}
}
全部代码
/////////////////////////
package mytest;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
import javax.swing.JOptionPane;
public class Frame1 extends JFrame {
JPanel contentPane;
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JLabel jLabel4 = new JLabel();
JTextField txt1 = new JTextField();
JTextField txtOrder = new JTextField();
JButton btn2 = new JButton();
JTextField txt2 = new JTextField();
JTextField txtIn = new JTextField();
JButton btn1 = new JButton();
public Frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(457, 432));
setTitle("Frame Title");
jLabel1.setText("排序前");
jLabel1.setBounds(new Rectangle(30, 99, 59, 36));
jLabel2.setText("排序后(1)");
jLabel2.setBounds(new Rectangle(27, 183, 66, 36));
jLabel3.setText("排序后(2)");
jLabel3.setBounds(new Rectangle(29, 259, 76, 36));
jLabel4.setText("用户输入");
jLabel4.setBounds(new Rectangle(28, 35, 71, 36));
txt1.setBounds(new Rectangle(116, 182, 307, 33));
txtOrder.setBounds(new Rectangle(118, 106, 307, 37));
btn2.setBounds(new Rectangle(263, 327, 162, 42));
btn2.setText("插入排序");
btn2.addActionListener(new Frame1_btn2_actionAdapter(this));
txt2.setBounds(new Rectangle(118, 259, 307, 33));
txtIn.setText("请输入数字,并按回车键。一次只能输入一个数字");
txtIn.setBounds(new Rectangle(116, 37, 306, 39));
txtIn.addKeyListener(new Frame1_txtIn_keyAdapter(this));
btn1.setBounds(new Rectangle(28, 327, 162, 42));
btn1.setText("选择排序");
btn1.addActionListener(new Frame1_btn1_actionAdapter(this));
contentPane.add(jLabel4);
contentPane.add(jLabel1);
contentPane.add(txtOrder);
contentPane.add(jLabel2);
contentPane.add(txt1);
contentPane.add(jLabel3);
contentPane.add(txt2);
contentPane.add(txtIn);
contentPane.add(btn1);
contentPane.add(btn2);
}
int[] Number1=new int[10];
int[] Number2=new int[10];
int i=0;
public void txtIn_keyPressed(KeyEvent e) {
try{
if(e.getKeyChar()=='\n'){
Number1[i]=Integer.parseInt(txtIn.getText().trim());
Number2[i]=Integer.parseInt(txtIn.getText().trim());
String txt=txtOrder.getText().trim();
txtOrder.setText(txt+txtIn.getText().trim()+",");
txtIn.setText("");
txtIn.requestFocus(true);
if(++i10){
JOptionPane.showMessageDialog(this,"只能输入10个整数!");
txtIn.setText("");
return;
}
}
}catch(Exception ex){
JOptionPane.showMessageDialog(this,ex.getMessage());
txtIn.setText("");
ex.printStackTrace();
}
}
//选择排序法函数
public void select_Sort(int[] num)
{
int i,j,MX;
int temp;
for(i = 0; inum.length-1; i++)
{
MX = i ;
for(j = i+1 ; jnum.length; j++)
{
if(num[MX] num[j])
MX = j ;
}
temp = num[i];
num[i] = num[MX];
num[MX] = temp;
}
}
//选择排序按钮监听方法
public void btn1_actionPerformed(ActionEvent e) {
txt1.setText("");
select_Sort(Number1);//调用选择排序函数
for(int j=0;jNumber1.length;j++){
String txt=txt1.getText().trim();
txt1.setText(txt+Number1[j]+",");
}
}
//插入排序函数
public void insert_Sort(int[] data)
{
int i,j,mx;
int key ;
for(i=1; i data.length -1; i++)
{
key = data[i];
mx = i;
for(j= i-1;j0;j--)
{
if(keydata[j])
{
data[j+1] = data[j];
mx = j ;
}
}
data[mx]=key;
}
}
public void btn2_actionPerformed(ActionEvent e) {
txt2.setText("");
insert_Sort(Number2);
for(int j=0;jNumber2.length;j++){
String txt=txt2.getText().trim();
txt2.setText(txt+Number2[j]+",");
}
}
//主函数
public static void main(String[] arges){
Frame1 F=new Frame1();
F.setVisible(true);
}
}
class Frame1_btn2_actionAdapter implements ActionListener {
private Frame1 adaptee;
Frame1_btn2_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btn2_actionPerformed(e);
}
}
class Frame1_btn1_actionAdapter implements ActionListener {
private Frame1 adaptee;
Frame1_btn1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btn1_actionPerformed(e);
}
}
class Frame1_txtIn_keyAdapter extends KeyAdapter {
private Frame1 adaptee;
Frame1_txtIn_keyAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void keyPressed(KeyEvent e) {
adaptee.txtIn_keyPressed(e);
}
}
java中treeset定制排序和自然排序的区别
* TreeSet:
* 1.向TreeSet中添加的元素必须是同一个类的。
* 2.可以按照添加进集合中的元素的指定的顺序遍历。像String、包装类等默认按照从小到大的顺序遍历。
* 3.自然排序:当向TreeSet中添加自定义类的对象时,有两种排序方法:①自然排序 ②定制排序
* 4.自然排序:要求自定义类实现java.lang.Comparable接口并重写其compareTo(Object obj)
* 在此方法中,指明按照自定义类的哪个属性来排序。
*
* 5.向TreeSet中添加元素时,首先按照compareTo()进行比较,一旦返回0,虽然仅是两个对象的
* 此属性值相同,但是程序会认为这两个对象是相同的,进而后一个对象就不能添加进来。
*
* compareTo()与hashCode()以及equals()三者保持一致!
*
java类的里面可以再定义一个类吗
java类里面还可以定义一个类,即内部类。
java内部类分为: 成员内部类、静态嵌套类、方法内部类、匿名内部类 。
内部类的共性
(1)、内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 。
(2)、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的 。
(3)、内部类声明成静态的,就不能随便的访问外部类的成员变量了,此时内部类只能访问外部类的静态成员变量 。
关于java定制类和java定制安装的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-19,除非注明,否则均为
原创文章,转载请注明出处。