按值传递与按引用传递


按值传递与按引用传递

按值传递:传入的方法参数是原始数据类型,那么在方法内对该参数做任何处理都不会影响外部参数
按引用传递:传入方法的参数是引用数据类型,那么在方法内对该参数修改后外面的也一样受影响

    public int a;
  //按值传递,传入方法的参数是原始数据类型
   //方法内对该参数做任何处理都不会影响外部参数
    public void jisuan(int i) {
        i=i+5;
        System.out.println("在方法内"+i);//15
    }
//按引用传递:传入的方法参数是引用数据类型
    //方法内对该参数修改后外面的也一样受影响
//  public void yingyong() {
//      a = a+5;
//      System.out.println("在方法内"+a);
//  }
    public void yingyong(demo2 js) {
        js.a=js.a+5;
        System.out.println("在方法内"+a);
    }

public static void main(String[] args) {
    demo2 js = new demo2();
    int i= 10;
    System.out.println("前"+i);//10
    js.jisuan(i);//15 方法内不会影响外部的参数
    System.out.println("后"+i);//10
    System.out.println("------------------");
    js.a=12;
    System.out.println("前"+js.a);//12
    js.yingyong(js);//17
    System.out.println("后"+js.a);//17
}
传递.png

封装

封装的含义:
1:属性私有化
2:提供公开的getset分别用于获取和设置

封装的好处
1:良好的封装能够减少耦合
2:类内部的结构可以自由修改
3:封装增加数据访问限制,提高安全性

老师类
public class Teacher {
public String name;//公共
private int age;//private int age 私有的只有本类可以访问
//属性私有化,提供公开方法
public void setAge(int myAge) {//给年龄设置参数
    if(myAge<22) {
        System.out.println("年龄错误");
    }else {
        age=myAge;
    }
}
public int getAge() {
    return age;
}
public void show() {
    System.out.println("name:"+name+"age"+age);
}


测试类
public static void main(String[] args) {
    Teacher t1 = new Teacher();
    Scanner input = new Scanner(System.in);
    System.out.println("请输入老师姓名");
    t1.name=input.next();
    System.out.println("请输入老师年龄");
两种写法
    t1.setAge(input.nextInt());

    /*
     * int myAge=input.nextInt();
     * t1.setAge(myAge)
     */
   
}
封装.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。