类与对象(面向对象编程的关键思想)

面向对象编程的重点:类与对象

类与对象的一些基本概念

  1. 类的定义格式:

    [修饰符] class [extents 父类名] [implements 接口列表]{

    ... //类体部分

    }

  2. 类体部分包括类的属性和方法。

  3. 对象的创建及引用:定义Java类后,就可以使用“new+构造方法”来创建类的对象,并将创建的对象赋值给某个引用变量,进而通过”引用变量名.属性(或方法)“来访问对象的属性(或方法)。

  4. 创建对象即为对类的实例化,当创建了一个对象时,系统将自动调用对象的构造方法,并给实例变量赋初值。

构造方法

  1. 构造方法的特点:

    • 方法名要与类名一致

    • 构造方法没有返回值

  2. 构造方法的主要作用就是给对象的属性赋值

  3. 需要注意的是:当类中没有创建构造方法时,系统将自动创建一个无参数且为空的构造方法。若创建了有参的构造方法,系统将不再自动创建无参构造方法,此时需要自己创建,否则当创建的对象不含参数时,系统将报错。

  4. 创建构造函数的快捷方式:Alt+ins

变量的作用域

1.  变量的作用域也称变量的有效范围,它是指程序中的一个区域,变量在其作用域内可以被访问。作用域也决定Java运行系统什么时候为变量创建和释放内存。根据变量在程序中声明的位置,可以将变量分为以下4种情形:

(1)成员变量:其作用域是整个类体。成员变量定义时系统会自动赋默认初值。成员变量包括:实例变量(实例变量又称类的属性,实例变量必须通过对象来访问)、类变量(静态变量)、常量。举例:

public class Variable{
   public int a; //实例变量
   private String b;   //实例变量
   public static int c; //类变量(加了static修饰符)
   final String d="常量"; //常量
}

(2)局部变量:在方法内部或一小段代码中定义的变量。方法内定义的变量在整个方法内有效,而循环内定义的局部变量只在循环内有效。如:

public class Variable{
   public static void method{ //定义了一个method方法
       int a=1;
       int b=2; //变量a,b的作用域为method方法内
  for(i=0;i>9;i++){ //变量i由于实在循环块中定义的,所以其作用域仅为整个for循环
           a++;
           b--;
      }
  }
}

注意:局部变量在定义时,系统不会赋默认值。

(3)方法参数:作用域是整个方法(与局部变量相同,只不过定义的位置不同,方法参数定义在形参表中,而局部变量则定义于方法体内)。如:

public class Variable{
   public void method(int a){
       a++;
  } //方法参变量在整个方法内有效
}

(4)异常处理参数:与方法参数作用类似,其作用范围是catch后面跟随的异常处理块。


  1. 变量的作用域举例

    public class Scope{
       int x=1; //成员变量x
       int y; //成员变量y
       public void method(int a){ //方法参变量a
           int x=8; //局部变量x,将成员变量x隐藏
           for(int i=1;i<a;i++) //控制循环体的局部变量i
               y++;
           System.out.println("x="+x+",y="+y+",a="+a);
      }
       public static void main(String[] args){
           Scope x=new Scope(); //方法内定义的局部变量
           x.method(6);
      }
    }

    【运行结果】
    x=8,y=5,a=6

类变量和静态方法

用static修饰符修饰的属性是仅属于类的静态属性,相应的成员变量变量也称类变量或静态变量。

  1. 类变量的访问形式

  • 类变量可以通过类或对象名作前缀来访问,在本类中可以直接以变量名访问。

  • 静态变量在存储上归属类空间,不依赖如何对象,通过对象来访问静态变量实质上还是访问类空间的那个变量。因此,类变量的值时统一的,对于同一类变量,如何地方对其值修改,其他地方的类变量也会随之修改为相同值。

  1. 静态方法

用static修饰符修饰的方法叫静态方法。可通过类或对象访问。在静态方法的方法体内,可以处理类变量,也可以访问其他静态方法,但绝不能访问如何归属对象空间的变量或方法(即非静态变量或方法)。



posted @   哥本是哈根  阅读(112)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示