翁凯java讲义概要(四、五)

翁凯java讲义概要(四)
<1>create and destroy object
you must create your object
But can not destroy.
Is an object to hold other object .
Every class in Java is desendent of the class:Object
<2>引用 String s; Here is only a handle that refer to new!
String s=new String("a string");
1>An object of string is create.
2>The object is initalized w/
"a string"..
3>A variable as handle to string is created.
4>The value of the handle variable is assign to the object.
类第一个字母有大写.
变量 、方法用小写.
翁凯java讲义概要(五)
<1>建立新的数据类型:class
//命名规则
class ATypeName{
/* class body goes here*/
}
note:Method of Java 只能作为类的一部分创建
<2>方法,参数和返回值
returnType methodName(
/*argument list*/)
{
/*Method body*/
}
note:C++有全局函数而Java没有
<3>赋值
"from one object to another" 赋值实际上就是与句柄从一个地方复制到另一的地方.
case:Assignment.java
//Assignment.java
//Assignment with objects is a bit tricky
class Number{

int i;
}
public class Assignment{

public static void main(String args[]){

Number n1=new Number();
Number n2=new Number();

n1.i=9;
n2.i=57;

System.out.println(
"1:n1.i="+n1.i+",n2.i="+n2.i);

n1=n2;

System.out.println(
"2:n1.i="+n1.i+",n2.i="+n2.i);

n1.i=27;

System.out.println(
"3:n1.i="+n1.i+",n2.i="+n2.i);
}
}
<4>
"+"连接字符串
将一个对象传递到到方法内部时也是赋值
参数传递方式(传值)
//Passing objects to methods can be bit tricky
Case:PassObject.java
//PassObject.java
//Passing objects to method can be a bit tricky
class Letter{

char c;
}

public class PassObject{

static void f(Letter y){

y.c='e';
}

public static void main(String args[]){


Letter x=new Letter();
x.c='a';
System.out.println(
"1:x.c="+x.c);
f(x);
System.out.println(
"2:x.c="+x.c);
}
}
Note:C,C++拷贝构造 而Java只有应用
“+”运算符可以用来连接字符串。
<5>关系运算符
关系运算符==和!=也只能对任何对象进行,但是它们的含义常常使人迷惑
Case:Equivalence.java
//Equivalence.java
public class Equivalence {

public static void main(String argsp[]){

Integer n1=new Integer(3);
Integer n2=new Integer(3);
System.out.println(n1==n2);
System.out.println(n1!=n2);

}
}
Note:n1是一个引用,n2也是个引用,只是指向的方向不同即地址不一样,引用的本质就是指针,是不可计算的
地址。
<6>Break and Continue
<7>初始化和清除
As the computer revolution progresses,
"unsaffe"programming has become one of the maior culprits that makes programming expensive.
初始化和清除是程序设计安全性的两个重要问题
Note:C++为我们引用了构造函数的概念 Java也沿用了这个概念,但新增了自己的垃圾收集器。
<8>用构造函数自动初始化
如果某个类有一个构造函数,那么有创建对象的时候,Java会自动调用那个构造函数,构造函数的名字与类的名字相同。
//SimpleConstructor.java
//Demonstration of a simple constructor
class Rock{

Rock(){
//This is a simple constructor

System.out.println(
"Creating Rock");
}
}

public class SimpleConstructor{

public static void main(String args[]){

for(int i=0;i<10;i++){

new Rock();
}
}
}
缺省构造函数没有参数,new Rock()一制造出来就是垃圾,因为它没有被引用。
<9>Methods overloading
One of the important features in any programming language is the use of names.
我们用名字引用或描述所有对象与方法。
在日常生活中我们用相同的词表达多种不同的含义,即词的“重载”。
大多数程序设计语言要为我们每个函数都设定一个独一无二的标志符,但是构造函数的出现
要求函数名也能够重载。
Often the same word expresses a number of different meanings--It's oveloaded.
每个重载方法都必须采取独一无二的自变量类型列表。
Note:如果一个类没有定义构造函数,则编译程序会帮助我们自动创建一个缺省构造函数。
然而一但定义了一个构造函数,就不会帮我们自动生成了。
<10>this
this关键字可以为已调用了其方法的那个对象重载生成相应的句柄。
//Leaf.java
//Simple use of the "this" keyword
public class Leaf{

private int i=0;

Leaf increment(){

i++;
return this;
}

void print(){

System.out.println(
"i="+i);
}

public static void main(String args[]){

Leaf x=new Leaf();

x.increment().increment().increment().print();
}
}
在一个构造函数中调用另一个构造函数时,用this关键字。
//Flower.java
//Calling constructors with "this"
public class Flower{

private int petalCount=0;
private String s=new String(
"null");

Flower(int petals){

petalCount=petals;
System.out.println(petalCount);
}

Flower(String ss){

System.out.println(
"Constructor String only");
s=ss;
}

Flower(String s,int petals){

this(petals);
//!this(s); Can't call two
this.s=s;
//Another use of "this"
System.out.println(
"String & int args");
}

public static void main(String args[]){

Flower f1=new Flower(1);
Flower f2=new Flower(2);
Flower f3=new Flower(
"test",3);
}
}
构造函数调用必须是构造函数中的第一条语句,并且不能在一个构造函数调用两个以上的构造函数。

lunzi   2005-10-21 18:40:34 评论:0   阅读:1798   引用:0

发表评论>>

署名发表(评论可管理,不必输入下面的姓名)

姓名:

主题:

内容: 最少15个,最长1000个字符

验证码: (如不清楚,请刷新)

Copyright@2004-2010 powered by YuLog