类的成员:属性和方法(方法传递)

一、属性:

在这里插入图片描述

1、成员变量和局部变量的定义:

成员变量:又称属性、字段。是指在类体内,方法体外声明的变量。
局部变量:在方法体内声明的变量。

2、成员变量与局部变量的区别:

成员变量:
(1)定义在类中,在整个类中都可以被访问。
(2)实例成员变量存在堆内存中。
(3)成员变量可以不初始化,有默认值。

默认值规则:

  • 对于各种数字类型, 默认值为0.
  • 对于 boolean 类型, 默认值为 false。
  • 对于引用类型(String, Array, 以及自定制类), 默认值为null。

局部变量:
(1)局部变量只定义在局部范围内,如:方法内,代码块内。
(2)局部变量存在于栈内存中。
(3)局部变量没有默认初始化,每次必须显式初始化。
(4)局部变量作用范围结束,变量空间会自动施放。

3、字段初始化格式:
修饰符 类型 属性名=初值;
class Person {
public String name="zhangsan";
public int age=18;
}

修饰符:可以用来修饰变量,指明变量是公有的还是私有的。

public: 公有的,可以在本类中使用,也可以在类外部使用。
private:私有的,只能在当前类使用。
4、实例变量和类变量定义:

实例变量:又称对象变量,即没加static 的变量。
类变量: 静态变量,也就是在变量前加了static 的变量。

class Test{
public int a;               //实例变量
public static int count;    //类变量
}
5、实例变量与类变量的区别:

实例变量:

  • 类实例化对象之后才能使用,通过对象.属性这样的方式调用。
  • 属与对象私有,某一个对象将其值改变,不影响其他对象。

类变量:

  • 不需要类实例化对象就可以直接使用,通过类名.属性这样的方式直接调用。
  • 所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果。
public class People {
    public int a;             //实例变量
    public  static int b;     //类变量
}
public class Test {
    public static void main(String[] args) {
      People p1=new People();
         p1.a++;
         People.b++;
        System.out.println("p1.a="+p1.a);
        System.out.println("People.b="+People.b);

        People p2=new People();
          p2.a++;
          People.b++;
        System.out.println("p2.a="+p2.a );
        System.out.println("People.b="+People.b);
    }
}

在这里插入图片描述

二、方法:
1、方法用于描述一个对象的行为。
2、语法格式:
修饰符 返回值类型  方法名(参数列表){
   方法体语句;
}

修饰符:public,private,protected等。

public class Person5 {
    public int age=20;
    public String name="zhangsan";
    public void showInfo(){
        System.out.println(age);
        System.out.println(name);
    }
}
3、方法的参数传递:

形参:方法声明时的参数。
实参:方法调用时实际传给形参的参数值。

java里面的参数传递方式只有一种:值传递。

(1) 基本数据类型参数传递:
把实参的值传递到形参上。

public class Test {
    public static void swap(int i){
        System.out.println("swap方法中的参数i的值:" + i);
    }
    public static void main(String[] args) {
        int a =8;
        swap(a);
        System.out.println("main方法中的a的值:" + a);
    }
}

在这里插入图片描述
(2) 引用类型参数传递:
形参是对象,那么实参向形参传递过程中,也是把值传递给形参,这个值是实参在栈内存内存上的值,也就是引用对象在堆内存的地址。

public class Swap {
    public int a=6;
}
public class Test {
    public static void swap(Swap s1){
        s1.a = 8;
        System.out.println("在swap方法中,ds1.a的值是:" + s1.a);
    }
    public static void main(String[] args) {
        Swap  s= new Swap();
        System.out.println("调用swap方法之前,ds.a的值是:" + s.a);
        swap(s);
        System.out.println("调用swap方法之后,ds.a的值是:" + s.a);
    }
}

在这里插入图片描述
总结:基本数据类型,值保存在栈中;引用类型,值保存在堆中,栈中保存的是对象在堆中的地址

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
成员方法在Python中用于定义的行为和操作。它们是定义在内部的方法,可以通过实例对象或本身进行调用。成员方法通常用于执行特定的操作,处理属性,并与其他方法属性进行交互。 以下是一些成员方法的常见用途: 1. 初始化方法(__init__):这是一个特殊的成员方法,用于初始化的实例对象。它在创建对象时自动调用,并可以在其中设置对象的初始状态。 2. 实例方法:这些方法通过实例对象进行调用,并且可以访问和修改实例对象的属性。它们用于执行与实例对象相关的操作,例如计算、修改属性值等。 3. 方法:这些方法通过本身进行调用,而不是通过实例对象。它们通常与相关的操作,例如创建变量、修改属性等。 4. 静态方法:这些方法和实例对象无关,它们在中定义,但不会自动传递任何参数。静态方法可以通过名直接调用,也可以通过实例对象调用。 5. 特殊方法:这些方法以双下划线(__)开头和结尾,并且具有特殊的功能。例如,__str__方法用于定义对象的字符串表示形式,__len__方法用于返回对象的长度等。 总之,成员方法允许我们定义和组织的行为,并提供了一种有效的方式来操作和管理属性方法。它们是面向对象编程中非常重要的概念之一。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值