??xml version="1.0" encoding="utf-8" standalone="yes"?> Ҏ2:采用StringTokenizer ?int i = Integer.parseInt(String);
1、this
让我们先看一D代码吧Q?br />
class PersonInformation
{
String name,gender,nationality,address;
int age;
void PersonInformation(String p_name,String p_gender,String p_nationality,String p_address,int p_age)
{
name=p_name;
gender=p_gender;
nationality=p_nationality;
address=p_address;
age=p_age;
}
}
你会发现Q在PersonInformation()函数中这个对象的Ҏ提示可以直接讉K对象的成员变量的Q而且在同一个范围中Q定义两个相同的名字的局部变量是不允许的Q如果确实想使类的成员变量和Ҏ的参数或Ҏ自己定义的局部变量同名的话就需要想一U方法成员变量与更它同名的Ҏ参数或局部变量区分开来,q就要用到this变量。下面我x写一下上面的代码QPersonInformationcȝ构造函数的每个参数都有与对象成员变量相同的名字Q而成员变量的初值由参数l出?br />
class PersonInformation
{
String name,gender,nationality,address;
int age;
void PersonInformation(String name,String gender,String nationality,String address,int age)
{
this.name=name;
this.gender=gender;
this.nationality=nationality;
this.address=address;
this.age=age;
}
}
׃一例中Q我们可以看出,该构造函C必须使用thisQthis在方法体重用来指向引用当前正在执行方法的那个对象实例Qthis变量的类型L为包含前执行Ҏ的类Q上例中Q我们要区别参数name和成员变量name,写成name=name昄是不允许的,在参数或局部变量名与类成员变量同名的时候,׃参数或局部变量的优先U高Q这样在Ҏ体中参数名或局部变量名隐藏同名的成员变量Q因此,Z值名成员变量Q你必须使用this昄地指明当前对象?br />
有时候会遇到q种情况Q我们全面的讉K当前对象Q而不是访问某一个个别的实例对象Q我们也可以使用thisQƈ利用Java中的toString()ҎQ它能够q回一个描q这个对象的字符Ԍ如果把Q何一个对象传递到System.out.printlnҎ中,q个Ҏ调用q个对象的toStringҎQƈ打印出结果字W串Q所以,我们可以用如下方法System.out.println(this)Q来打印ZQ何对Ҏ固有参数的当前状态?br />
thisq有一个用法,是构造函数的W一个语句,它的形式是this(参数表)Q这个构造函数就会调用同一个类的另一个相对的构造函数。请看下面的例子Q?br />
class UserInfo
{
public UserInfo(String name)
{
this(name,aNewSerialNumber);
}
public Userinfo(String name,int number)
{
userName=name;
userNumber=number;
}
}
如果你调用UserInfor newinfotable = new UserInfo("aaron")?׃自动调用UserInfo(String name,int number)构造函数?br />
可见Q熟l掌握this在JavaE序设计q程中是非常重要?br />
2、super
在Java中,有时q会遇到子类中的成员变量或方法与类Q有时也U父c)中的成员变量或方法同名,因ؓ子类中的成员变量或方法名优先U高Q所以子cM的同名成员变量和Ҏ隐藏了类的成员变量或ҎQ但是我们如果想要用超cM的这个成员变量或ҎQ此使就需要用到superQ请看下面的cR?br />
class Country
{
String name;
void value()
{
name="China";
}
}
下面的子cMQ自cȝ成员变量和方法隐藏了类的成员变量name和方法value()Q?br />
class City extends Country
String name;
void value()
{
name="Beijing";
super.value();
System.out.println(name);
System.out.println(super.name);
}
Z在子cM引用类中的成员变量name和方法value()Q在代码中我们用了superQsuper.name和super.value()Q?br />
所以显C的l果?br />
Beijing
China
如果我们惌使用类的构造函数则应当使用super(参数列表Q的形式?nbsp;
]]>
2
3 public class TestSplit
4 {
5 public static void main(String[] args)
6 {
7 String s = new String("1,4,2,6,9");
8 String[] arrStr = s.split(",");
9 int[] arrInt = {0,0,0,0,0};
10
11 for(int i=0;i<arrStr.length;i++)
12 arrInt[i] = Integer.parseIn(arrStr[i]);
13
14 Arrays.sort(arrInt);
15
16 for(int i=0;i<arrInt.length;i++)
17 System.out.println(arrInt[i]);
18 }
19 }
2
3 public class TestStringTokenizer {
4 public static void main(String[] args) {
5 String s = new String("1,4,7,3,5");
6 //int length = s.length();
7 StringTokenizer str = new StringTokenizer(s, ",");
8 String[] arrStr = new String[str.countTokens()];
9 int k = 0;
10 while(str.hasMoreTokens())
11 {
12 arrStr[k] = str.nextToken();
13 k++;
14 }
15 int[] arrInt = new int[arrStr.length];
16 for(int i=0;i<arrInt.length;i++)
17 arrInt[i] = Integer.parseInt(arrStr[i]);
18 Arrays.sort(arrInt);
19 for(int i=0;i<arrInt.length;i++)
20 System.out.println(arrInt[i]);
21 }
22 }
]]>
?int i = Integer.valueOf(String);
注:字符串{换ؓDouble, Float, Longcd用法cM
2.如何intcd转换为字W串
?nbsp; String s = String.valueOf(int);
?nbsp; String s = Integer.toString(int);
?nbsp; String s = " " + int;
注:Double, Float, Long转换为字W串cd用法cM
]]>
2.事g?能够产生事g的GUIlg.
3.事g处理Ҏ:能够接受Q解析和处理事gcd的对象,实现与用户交互功能的Ҏ.
4.事g调度?能够调用事g处理Ҏ的对?
JAVA的事件主要有两种:
JAVA的事件类都包含在JDK的java.awt.event.*?br />
1.lgcM?br />
ComponnentEvent,ContainerEvent,FocusEvent,MouseEvent,PaintEvent,WindowEvent共六c?br />
它们均是lg的状态发生变化时产生.
2.动作cM?br />
ActionEvent,TextEvent,ItemEvent,AdjustmentEvent共四c,它们均对应用L某一功能性的操作
事g~程步骤:
1.实现某一监听器接?定义事g处理cdƈ事g监听器接?.
2.在事件处理类中重写其事g处理的函C.
3.在创建AWTlg时注册事件处理代码以指定该监听器(响应?是谁.
多重监听器:
1.针对同一个事件源的组件的同一事g可以注册多个事g监听?
2.针对同一个事件源的组件的多个事g可以注册同一个事件监听器q行处理.
3.同一个监听器可以被注册到多个不同的事件源?
事g适配器:
׃事g监听器接口逝abstractcdcd,意味着实现该接口的cd重写其所有的Ҏ,但实际应用中可能 ?nbsp;要实现某些事件处理响应代码,此时若采用实C件监听器接口可能会导致编E变得更复杂QJDK中提供事仉配器来实现事g~程.
1.没有U监听器接口都有相应的适配器类.
2.在事件注册时Q应监听器设ؓ适配器类的子cd象,佉K配器类事g中响应函?
2.BorderLayout 边界布局理器,是Window及子c?Frame,Dialog)的默认布局理器?br />
lg布局效果Q将整个容器分ؓQ东Q西Q南Q北Q中(East,West,South,North,Center)五部分,lg只能被添加到指定的区域,默认加的Center区域,每个区域只能加入一个组件。东Q西为垂直羃放,南,北ؓ水^~放?br />
构造方法:
Public BorderLayout():创徏默认布局理器?br />
Public BorderLayout(int h,int v):指定水^和垂直间?
用一?个常量来表示5个地?br />
BorderLayout.EAST
BorderLayout.WEST
BorderLayout.NORTH
BorderLayout.SOUTH
BorderLayout.CENTER
例如Q?nbsp; f.add(button,"Sourth") == f.add(button,BorderLayout.SOURTH) 但第二种Ҏ相对要好些?br />
3.GridLayout |格布局?br />
布局效果Q将容器划分则的矩Ş|格Q每个单元格大小相等.
Public GridLayout();默认讄Q所有组件在同一行中,各占一?
Public GridLayout(int rows,int cols): 指定行数和列?
Public GridLayout(int rows,int cols, int h,int v):指定行数Q列数和垂直Q水q间?
4.CardLayout:卡片式布局
布局效果Q将多个lg在同一容器区域内交替显C,相当于多张卡片叠在一P只有最上面一张可见?br />
常用ҎQ?br />
Public void first(Contains paren) {到指定容器的W一张卡?
public void Last(Contains paren) {到指定容器的最后一张卡?
public void Previous(Contains paren) {到指定容器的前一张卡?
Public void next(Contains paren) {到指定容器的下一张卡?
public void show(Contains paren,String name) {到已d到此布局的具有指定名U的lgQ如果不存在Q则不会发生M操作.