黑马程序员技术交流社区

标题: 两个值得注意的问题 [打印本页]

作者: 鲍霄霄    时间: 2012-7-16 16:42
标题: 两个值得注意的问题
(1)对成员变量的操作只能放在方法中,方法可以对成员变量和方法体中自己定义的局部变量进行操作.在定义类的成员变量时可以同时赋予初值,如:
class A
{
        int a=12;
        float b=12.56f;
}
但是不可以这样做
class A
{  
        int a;
        float b;
        a=12;           //非法,只能放在方法中
        b=12.56f;    //非法
但需要注意的是,实例方法既能对类变量操作也能对实例变量操作,而类方法只能对类变量进行操作.如:

class A
{
        int a;
        static int b;
        void f(int x,int y)
        {         
                a=x; //合法.
                b=y; // 合法.
        }
        static void g(int z)
        {
                b=23; // 合法.
                a=z; //非法.
        }
}
(2)一个类中的方法可以互相调用,实例方法可以调用该类中的其它方法;类中的类方法只能调用该类的类方法,不能调用实例方法.

作者: 黑马刘涛    时间: 2012-7-16 17:05
一个类中的方法可以互相调用,实例方法可以调用该类中的其它方法;类中的类方法只能调用该类的类方法,不能调用实例方法.什么是实例方法,类方法?
作者: 黑马刘涛    时间: 2012-7-16 17:08
  1. class A
  2. {
  3.         int a;
  4.     static int b;
  5.         public static void main(String[] args)
  6.         {
  7.                 A s = new A();
  8.         s.f(3,4);
  9.                 g(6);
  10.         
  11.         }
  12.         void f(int x,int y)
  13.         {         
  14.                 a=x; //合法.
  15.                 b=y; // 合法.
  16.                                 System.out.println(a+b);
  17.         }
  18.         static void g(int z)
  19.         {
  20.                 b=23; // 合法.
  21.                 a=z; //非法.无法从静态上下文中引用非静态变量a
  22.                                 System.out.println(a+b);
  23.         }
  24. }
复制代码

作者: 鲍霄霄    时间: 2012-7-16 19:18
黑马刘涛 发表于 2012-7-16 17:05
一个类中的方法可以互相调用,实例方法可以调用该类中的其它方法;类中的类方法只能调用该类的类方法,不能调 ...

http://blog.chinaunix.net/uid-78707-id-2930541.html
作者: 黑马-王言龙    时间: 2012-7-16 21:48
黑马刘涛 发表于 2012-7-16 17:05
一个类中的方法可以互相调用,实例方法可以调用该类中的其它方法;类中的类方法只能调用该类的类方法,不能调 ...

她说的意思,static 修饰的方法是类方法,是类加载后就能调用的方法,无需创建对象。
不是static修饰的方法就是实例方法,就是对象创建会才能调用的方法
作者: 高鑫    时间: 2012-7-16 21:57
本帖最后由 高鑫 于 2012-7-16 22:00 编辑

静态方法只能调用静态成员,你说的第2个例子只是说明了现象,却并没明白原理。
作者: 黑马刘涛    时间: 2012-7-16 22:50
黑马-王言龙 发表于 2012-7-16 21:48
她说的意思,static 修饰的方法是类方法,是类加载后就能调用的方法,无需创建对象。
不是static修饰的方 ...

哦。谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2