「java自定义」java自定义函数

博主:adminadmin 2023-03-22 20:53:07 649

今天给各位分享java自定义的知识,其中也会对java自定义函数进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中什麽是自定义类???

系统定义的是你可以直接导入包之后只用的类,如String 它是个特殊的类 你可以直接生成对象 string com=new string(); 具体的你可以在jdk帮助文档里面找 每导入一个包 就会生成很多类

自定义的就是你自己写好的类在里面添加属性方法!

class MyGame

{

String name="张三";

int age=18;

public void Print()

{

System.out.print("姓名:"+name+"\n"+"年龄:"+age);

}

public static void main(String[] args)

{

MyGame game=new MyGame();

game.Print();

}

}

这是自己定义的类

class定义类 public class Person{}

使用类,需要创建类的对象 Person p = new Person()

在Java中,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在public,则类文件的名称可以为任意的名称(当然以数字开头的名称是不允许的)。

在类内部,对于成员变量,如果在定义的时候没有进行显示的赋值初始化,则Java会保证类的每个成员变量都得到恰当的初始化:

对于 char、short、byte、int、long、float、double等基本数据类型的变量来说会默认初始化为0(boolean变量默认会被初始化为false);

对于引用类型的变量,会默认初始化为null。

如果没有显示地定义构造器,则编译器会自动创建一个无参构造器,但是要记住一点,如果显示地定义了构造器,编译器就不会自动添加构造器。

java自定义异常抛出

分类: 电脑/网络 程序设计 其他编程语言

问题描述:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

自定义异常类

class NumException extends Exception{

public String toString(){

return "输入的值太小";

}

public String shuru(){

return "请输入数字";

}

}

class jisuanqi extends JFrame implements ActionListener,ItemListener{

JRadioButton rz;

JRadioButton rm;

ButtonGroup bg;

JTextField txt;

JButton btnj;

String msg;

jisuanqi(){

super("计算器");

rz=new JRadioButton("周长");

rm=new JRadioButton("面积");

bg=new ButtonGroup();

txt=new JTextField();

btnj=new JButton("计算");

msg="";

this.getContentPane().setLayout(new GridLayout(2,2));

bg.add(rz);

bg.add(rm);

this.getContentPane().add(rz);

this.getContentPane().add(rm);

this.getContentPane().add(txt);

this.getContentPane().add(btnj);

this.setSize(200,200);

rz.addItemListener(this);

rm.addItemListener(this);

btnj.addActionListener(this);

}

实现接口

public void actionPerformed(ActionEvent e) throws NumException{声明异常

if (Double.parseDouble(txt.getText())=0){

throw new NumException();抛出异常

}

if (msg.equals("周长")){

txt.setText(""+(3.14*2*Double.parseDouble(txt.getText())));

}

if (msg.equals("面积")){

txt.setText(""+3.14*(Double.parseDouble(txt.getText())*Double.parseDouble(txt.getText())));

}

}

实现接口

public void itemStateChanged(ItemEvent e){

if (e.getSource()==rz){

msg="周长";

}

if (e.getSource()==rm){

msg="面积";

}

}

public static void main(String args[]){

try{

jisuanqi js=new jisuanqi();

js.setVisible(true);

}

catch(NumException ex){

System.out.println(ex);

}

}

}

编译时出现:

C:\Documents and Settings\Administrator\桌面\新建文件夹\jisaunqi.java:45: jisuanqi 中的 actionPerformed(java.awt.event.ActionEvent) 无法实现 java.awt.event.ActionListener 中的 actionPerformed(java.awt.event.ActionEvent);被覆盖的方法不抛出 NumException

解析:

这段代码有问题:

实现接口

public void actionPerformed(ActionEvent e) throws NumException{声明异常

public void actionPerformed(ActionEvent e)不应该抛出异常, ActionListener接口函数没有异常抛出

一种可能的解决方法是把判断移到另外一个函数中,然后抛出异常,在actionPerformed中捕获或者在外面捕获

Java 求大神们解答:自定义异常,处理异常

Java 允许我们定义自己的异常,这样的异常就称为自定义异常。定义自定义异常的方式是继承 Exception 类,然后定义一个类来代表该异常。

下面是定义自定义异常类的示例:

================

public class MyException extends Exception {

public MyException() {

super();

}

public MyException(String message) {

super(message);

}

}

================

这里定义了一个名为 MyException 的类,它继承了 Exception 类,并定义了两个构造方法,一个是无参构造方法,另一个是带有一个字符串参数的构造方法,该字符串参数用于传入错误信息。

接下来,我们可以在可能抛出异常的方法中使用 throws 关键字声明该方法可能抛出的异常,并在方法中使用 throw 语句抛出异常。例如:

================

public class UsingMyException {

public void f() throws MyException {

System.out.println("抛出异常MyException 从 f()方法");

throw new MyException();

}

public void g() throws MyException {

System.out.println("抛出异常MyException 从 g()方法");

throw new MyException("从g()方法中抛出异常");

}

}

================

这里我们定义了一个名为 UsingMyException 的类,它包含两个方法: f() 和 g()。两个方法都使用了 throws 关键字声明它们可能会抛出 MyException 异常,并在方法内部使用 throw 语句抛出该异常

Java中使用观察者模式实现自定义事件

MyEventTest java:

package wintys event;

import javax swing event EventListenerList;

import java util Date;

import java text DateFormat;

import java text SimpleDateFormat;

/**

* Java的事件机制/自定义事件

运行结果:

do something interesting in source here

listener detects [event]:wintys event MyEvent[source=wintys event MySource@

] [occur at]: : :

listener detects [event]:wintys event MyEvent[source=wintys event MySource@

] [occur at]: : :

* @version

* @author 天堂露珠 ()

* @see

*/

class MyEventTest{

public static void main(String[] args){

MySource source = new MySource();

MyListener myListener = new MyListener(){

public void doMyAction(MyEvent e){

System out println( listener detects + e);

}

};

source addMyListener(myListener);

source addMyListener(myListener);

source addMyListener(myListener);

source removeMyListener(myListener);

source doSomething();

}

}

/**

* 自定义的事件

* @version

* @author 天堂露珠()

* @see

*/

class MyEvent extends java util EventObject{

private Date date;//记录事件发生的时间

public MyEvent(Object source Date date){

super(source);

this date = date;

}

public String toString(){

DateFormat df = new SimpleDateFormat( yyyy MM dd HH:mm:ss );

String dt = df format(date);

return [event]: + super toString() + [occur at]: + dt;

}

}

/**

* 自定义事件监听器接口

* @version

* @author 天堂露珠()

* @see

*/

interface MyListener extends java util EventListener{

void doMyAction(MyEvent e);

}

/**

* 自定义事件源

* @version

* @author 天堂露珠()

* @see

*/

class MySource{

/**

* 保存注册的监听器列表

* 子类可以使用它保存自己的事件监听器(非MyListener监听器)列表

*/

protected EventListenerList listenerList = new EventListenerList();

private MyEvent myEvent = null;//fireDoMyAction()使用此变量

/**

* 没有做任何事

*/

public MySource(){

}

/**

* 添加一个MyListener监听器

*/

public void addMyListener(MyListener listener){

listenerList add(MyListener class listener);

}

/**

* 移除一个已注册的MyListener监听器

* 如果监听器列表中已有相同的监听器listener listener

* 并且listener ==listener

* 那么只移除最近注册的一个监听器

*/

public void removeMyListener(MyListener listener){

listenerList remove(MyListener class listener);

}

/**

* @return 在此对象上监听的所有MyListener类型的监听器

*/

public MyListener[] getMyListeners(){

return (MyListener[])listenerList getListeners(MyListener class);

}

//Winty:Copy directly from javax swing event EventListenerList

/*Notify all listeners that have registered interest for

notification on this event type The event instance

is lazily created using the parameters passed into

the fire method

*/

protected void fireDoMyAction() {

// getListenerList() Guaranteed to return a non null array

Object[] listeners = listenerList getListenerList();

// Process the listeners last to first notifying

// those that are interested in this event

for (int i = listeners length ; i= ; i = ) {

if (listeners[i]==MyListener class) {

// Lazily create the event:

if (myEvent == null)

myEvent = new MyEvent(this new Date());

((MyListener)listeners[i+ ]) doMyAction(myEvent);

}

}

}

/**

* 做一些事件源应该做的有意义的事 然后通知监听器

* 这里只是一个示例方法

* 例如:MySource如果是一个按钮 则doSomething()就可以命名为click()

* 当用户点击按钮时调用click()方法

*/

public void doSomething() {

System out println( do something interesting here );

fireDoMyAction();//通知监听器

}

}

lishixinzhi/Article/program/Java/hx/201311/26237

java自定义的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java自定义函数、java自定义的信息别忘了在本站进行查找喔。