Java编程基础--面向对象(封装)

面向对象(封装)

1.成员变量与局部变量

成员变量: 在一个类中方法外的变量
局部变量: 在一个类中方法中的变量

区别:
①位置不同: 成员变量在方法外,局部变量在方法内或者方法声明上(参数)
②内存中的位置不同: 成员变量在堆内存里面;局部变量在栈内存里面
③生命周期不同: 成员变量随着对象的存在而存在,消失而消失;局部变量是随着方法调用的。
④初始化值不同: 成员变量有默认的初始值;局部变量没有,须先定义和赋值才能使用

2.封装

概述: 面向对象的三大特征(封装,继承,多态)之一,是面向对象编程对客观世界的模拟,客观世界里成员变量是隐藏在对象内部的,外界无法直接操作。

原则: 将类的某些信息隐藏在类内部,不允许外部直接访问,而是通过提供的方法来实现对隐藏信息的访问和操作(可以理解为:在类中用private修饰成员变量,然后定义成员方法(public),外界通过调用成员方法来访问成员变量)

好处: ①提高代码的安全性 ②提高代码的复用性

3.构造方法

概述: 是一种特殊的方法,用来创建对象和对类中的属性赋值,如:

Student s = new Student();//new后面的Student()就是一个构造方法

格式:

public 类名(无惨/有参){
​	方法体;
}

注意事项

①: 如果类中没有定义构造方法,系统会给出一个默认的无惨构造方法,如果定义了,系统就不会提供默认的构造方法
②: 如果定义了带参数的构造方法,还要使用无参数的,那么久必须写一个无参数的构造方法
③: 在定义有参数的构造方法时,参数的数据类型要与成员变量的数据类型一样

范例(封装):

package practice;

public class Student {
    //定义成员变量,并封装起来
    private String name;
    private int age;

    //定义有参,无惨构造方法
    public Student(){};

    public Student(String name,int age){
        this.name = name;
        this.age = age;
    }

    //定义成员方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
package practice;

public class Demo01 {
    public static void main(String[] args) {
        //创建student类对象
        //调用无惨构造方法
        Student s = new Student();
        s.setName("张三");
        s.setAge(15);
        System.out.println(s.getName()+s.getAge());

        //创建对象,调用有参构造函数
        Student s1 = new Student("李四",18);
        System.out.println(s1.getName()+s1.getAge());
    }
}

执行结果:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值