「java自定义」java自定义函数
今天给各位分享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自定义的信息别忘了在本站进行查找喔。