J2SE面向对象的几点总结

1.对成员变量的操作只能放在方法中,方法可以对成员变量进行操作形成算法。如:

class A{

int a=9;

float v=12.6f;

void f(){

a=12;

b=12.56f;

以上是可以的,但是不可以这样:

class A{

int a;

float b=12.b;//非法的,这是赋值语句,不是变量声明

a=12.56f;

void f(){}

}

2.构造方法是一种特殊的方法,它的名字必须与它所在类的名字完全相同,而且没有类型。Java允许一个类中有若干个构造方法,但这些构造方法的参数必须不同,或者参数的类型不同,或者参数的个数不同。如果子类方法中没有显示的调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。

3.生成一个对象时,成员变量在heap中分配内存空间。当对象调用方法时,方法中的局部变量被分配内存空间,生成在stack中。方法执行完毕,局部变量即刻释放内存。局部变量声明时如果没有初始化,就没有默认值,因此在使用局部变量之前,要事先为其赋值。

4.static关键字。

方法声明中用关键字static修饰的称为类方法或静态方法,不用static修饰的叫做实例方法。实例方法可以调用类中的类方法和实例方法,类方法只能调用类中的类方法,不能调用实例方法。

在使用静态类时要注意下面几点:

(1)在静态方法里只能直接调用同类中其他的静态成员(包括变量和方法),而不能直接访问类中的非静态成员。这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才可以使用,而静态方法在使用前部用创建任何对象。

(2)静态方法不能以任何方式引用this和super关键字。因为静态方法在使用前部用创建任何实例对象,当静态方法被掉用能够时,this所引用的对象根本没有产生。

(3)main()方法是静态的,因此jvm在执行main方法时不创建main方法所在的类的实例对象,因而在main()方法中,不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能同类通过这个对象去访问类中的非静态成员。

(4)static对象存放在data seg,可以直接用类名.变量名。

5.object类。查询jdk api中java.lang.Object。

public String toString();通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。
结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。注意:编程员的好习惯——为了
防止重写的时候写错,我们最好去jdk api中复制方法名。
public boolean equals(Object obj);如下程序:
image 
返回值为false,因为比较的是两个对象的内存地址,没new一次就分配一个不
同的内存地址,所以比较后两个值不相等。

“for any non-null reference values x and y, this method returns true if and only if x and y refer to the same object (x == y has the value true).”

“对于任何非空引用值 xy,当且仅当 xy 引用同一个对象时,此方法才返回 truex == y 具有值 true)”

所以为了比较两个对象的是否相等可以用此方法比较,但是默认的equals方法和c1==c2是一样的,所以要重写equals方法,在方法内部实现比较。程序如下:

image

image

当然还有一些类如String也重写了equals方法,此处我就不介绍了,可以参考api文档自学下。

6.package和import语句

class文件的最上层包的父目录必须位于classpath下。如果出现不符合这一情况的时候,可以设置classpath来解决,当然如果你是用eclipse编译的话,ide自动帮你为每一个项目设置不同的classpath,解决了这一冲突。

在jdk/jre/lib/rt.jar中是jdk运行时的类文件存放的位置。其中java.lang这个包中的类不需要引用,可以直接使用。

用命令提示符语句打jar包:

image

将jar包加到classpath中,就可以找到jar中的类了。

7.接口是抽象方法和常量值的定义的集合。是一种特殊的抽象类,只包含常量和方法的定义,而没有变量和方法的实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值