java类和对象学习笔记(一)基础篇需要注意的知识点

来源:互联网 发布:电影台词搜索软件 编辑:程序博客网 时间:2024/05/16 17:35

一个简单的例子:

public class Circle{public double radius;//半径public static int NumOfObject;
public double getArea(){return radius*radius*PI;}}

1.静态方法和实例方法

静态方法可以使用:类名.方法名(参数)    的格式来调用。比如我们常用的Math.mathodName()。用对象.方法名(参数)也是可以的。

静态方法不依赖于实例变量,也就是和对象中的属性关系不大,甚至没有关系。这时候就可以加关键字static了。

实例方法必须使用对象.方法名()的格式。它依赖于对象的属性来实现。


2.对象的引用和不引用

多数时候我们是这样的:

Circle cir=new Circle();

cir是一个引用(其实可以看成指针),指向被创建的对象。其实也未必非要引用。

比如:

new Circle();

或者

System.out.println("Area is "+ new Circlr(5).getArea());

这种方式创建的叫做匿名对象

没有被引用的对象会被Java虚拟机自动回收它占的空间。Java真贤惠啊。。

这样用厉害一点吧(?


3.静态变量、常量和方法

实例变量就是radius那样的,绑定到类的某个特定实例,存储在互不相关的内存中,不能被同一个类的不同对象影响。

如果想让一个类的所有实例共享数据,就要使用静态变量(static variable)。变量值存在一个公共的内心地址,如果某一个对象修改了它的值,所有的对象都会受影响。


类中的常量是被该类的所有对象共享的,所以应该声明为final static。

例如Math类中的PI是这样定义的:

final static double PI = 3.14159265358979323846;

调用的话就Math.PI。和静态方法一样,静态变量也可以使用类名调用,这样用可读性会比较高。


静态变量和静态方法既可以在类的实例方法中使用,也可以在静态方法中使用。但实例变量和实例方法不可以在静态方法中使用了。

栗子:

public class Foo{
int i=5;
static int k=2;
public static void main(String[] args){
int j=i;//wrong, i is an instance variable
m1();//wrong, m1() is an instance method
}
public void m1(){i = i + k + m2(i, k);}//correct
public static int m2(int i, int j) {return i+j;}//correct}




0 0
原创粉丝点击