认识Java应用程序并使用(7)

本文介绍了Java中的成员变量和局部变量,包括它们的定义位置、作用范围、默认值、内存位置和生命周期。同时,深入探讨了封装的概念,作为面向对象编程的重要原则,封装隐藏了对象的内部实现细节,提供了安全的数据访问方式。通过示例代码展示了成员变量和方法的使用,以及封装在Person类中的应用,解释了如何设置和获取私有变量的值。
摘要由CSDN通过智能技术生成

学习目标:

认识第一个Java程序


学习内容:

1、局部变量和成员变量
2、封装


学习步奏:

1、成员变量和局部变量简述

在Java中,根据定义变量位置的不同,可以将变量分为两大类:成员变量(存在于堆内存中,和类一起创建)和局部变量(存在于栈内存中,当方法执行完成呢、,让出内存,让其他方法来使用内存)。
在这里插入图片描述

二者的区别:
1.定义的位置不一样

局部变量:在方法的内部
成员变量:在方法的外部,直接写在类当中

2.作用范围不一样

局部变量:只有方法当中才可以使用,出了方法就不能再用了
成员变量:整个类都可以通用

3.默认值不一样

局部变量:没有默认值,如果要想使用,必须手动进行赋值
成员变量:如果没有赋值,会有默认值,规则和数组一样

4.内存位置不一样

局部变量:位于栈内存
成员变量:位于堆内存

5.生命周期不一样

局部变量:随着方法进栈而诞生,随着方法出栈而消失
成员变量:随着对象的创建而诞生,随着对象被垃而消失

2、封装

封装( Encapsulation)是面向对象方法的重要原则,就是把对家的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。

概念:

封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。面向对象汁算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。封装是一种信息隐藏技术,在java中 通过关键字private, protected和public实现封装。什么是封装?封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。适当的封装可以让程式码更容易理解和维护,中加强了程式码的安全性。

例题1:


package com.hg.day07;

public class test01 {
    String name;
    double age;


    public void methodA() {
        int age2=30;
        System.out.println(name);
        System.out.println(age);
        System.out.println(age2);
    }

    public void methodB() {
        age=30;
        System.out.println(age);
    }
}

package com.hg.day07;

public class Demo01 {
    public static void main(String[] args) {
        int age1=20;
        test01 var1=new test01();
        var1.methodA();
        System.out.println("==============");
        var1.name="2020080605023";
        var1.age=18;
        System.out.println(var1.name);
        System.out.println(var1.age);
        System.out.println("==============");

        var1.methodB();

    }
}

程序运行结果:

在这里插入图片描述

例题2:

package com.hg.day07;

public class Demo02Method {

    public static int getMax(int[] array){
        int max = array[0];
        for(int i = 1; i<array.length; i++){
            if(array[i]>max){
                max = array[i];
            }
        }
        return max;
    }
}

package com.hg.day07;

public class Demo02Methoduse {
    public static void main(String[] args) {
        int[] array={5,15,25,50,20,100};
        int max =Demo02Method.getMax(array);

        System.out.println("max="+max);
    }
}

程序运行结果:

在这里插入图片描述

例题3:

package com.hg.day07;

public class Person {
    private String name;
    private int age;
    private boolean male;

    public void setMale(boolean boy) {
        male = boy;
    }
    public  boolean isMale() {
        return male;
    }

    public void setAge(int num){
        if(num<200&&num>=0){
            age = num;
        }else{
            System.out.println("数据不合理!");
        }
    }
    public int getAge(){
        return age;
    }
    public void setName(String who){
        name = who;
    }
    public String getName(){
        return name;
    }
    public void show() {
        System.out.println("我叫:"+name+",年龄:"+age);
    }
}

package com.hg.day07;

public class Demo03Person {
    public static void main(String[] args) {
        Person person = new Person();
        person.setAge(25);
        person.setName("鹿晗");
        person.setMale(false);
        person.show();

        if(person.isMale()==true)
            System.out.println("男性");
        else
            System.out.println("女性");
    }
}
程序运行结果:

在这里插入图片描述

例题4:

package com.hg.day07;

public class student {
    private String name;
    private double age;
    private boolean male;

    public void setMale(boolean boy) {
        male = boy;
    }
    public  boolean isMale() {
        return male;
    }

    public void setAge(double num){
        if(num<200&&num>=0){
            age = num;
        }else{
            System.out.println("数据不合理!");
        }

    }

    public double getAge(){
        return age;
    }
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }
    public void show() {
        System.out.println("我叫"+name+"年龄"+age);
    }
}



package com.hg.day07;

public class Demo04Student {
    public static void main(String[] args) {
        student student1=new student();
        student1.setAge(30);
        student1.setName("鹿晗");

        student1.show();

        System.out.println("=============");

        student student2=new student();
        student2.setAge(20);
        student2.setName("关晓彤");

        student2.show();
        student1.show();
    }
}

程序运行结果:

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值