java中的封装

作者: 小漫画ing | 来源:发表于2019-01-21 20:07 被阅读0次

封装概述:

是指隐藏对象的属性和实现细节,仅对外提供公共访问方式,这里就会用到一个关键字是private,在后面的使用成员变量时候,不能直接调动,只能通过方法调用;

好处:

  • 隐藏实现细节,提供公共的访问方式;
  • 提高了代码的复用性;
  • 提高安全性;

封装原则:

  • 将不需要对外提供的内容都隐藏起来;
  • 把属性隐藏,提供公共方法对其访问;

private关键字

  • private关键字
    是一个权限修饰符
    可以修饰成员(成员变量和成员方法)
    被private修饰的成员只在本类中才能访问
  • private最常见的应用
    把成员变量用private修饰
    提供对应的getXXX()/setXXX()方法
    一个标准的案例的使用
package cn.manman.com;

public class fengzhuang {
    private String name;
    private int age;
    private String address;
    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;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    
}

被private修饰之后的成员变量和成员方法只能在本类中使用,不能在另外一个类直接调用;
练习:
将手机类写成一个标准类,然后创建对象测试功能;
(1)封装类

package cn.manman.com;

public class phone {
    private String brand;
    public String getBrand() {
        return brand;
    }
    public void setBrand(String brand) {
        this.brand = brand;
    }
    public int getPrice() {
        return price;
    }
    public void setPrice(int price) {
        this.price = price;
    }
    public String getColor() {
        return color;
    }
    public void setColor(String color) {
        this.color = color;
    }
    private int price;
    private String color;
}

(2)测试类

package cn.manman.com;

public class PhoneDemo {
    public static void main(String[] args) {
        phone p=new phone();
        p.setBrand("华为");
        p.setColor("粉色");
        p.setPrice(10000);
        System.out.println(p.getBrand()+p.getColor()+p.getPrice());
    }
}

结果

接下来看类中得成员方法以及使用:

package cn.manman.com;
/*
 * 类的组成:
 *      成员变量
 *      构造方法
 *      成员方法
 *          根据返回值:
 *              void类型
 *              非void类型
 *          式参数:
 *              空参数方法
 *              非空参方法
 */
class fang{
    public String getString (){
        return "hello";
    }
    public void show(){
        System.out.println("show");
    }
    public void method(String name){
        System.out.println(name);
    }
    public String funtion(String s1,String s2){
        return s1+s2;
    }
}
public class fangfa {
    public static void main(String[] args) {
        fang f=new fang(); 
        //调用无参无返回值
        f.show();
        //调用无参有返回值方法
        String result=f.getString();
        System.out.println(result);
        //调用有参无返回值方法
        f.method("lisi");
        String result1=f.funtion("我是", "李四");
        System.out.println(result1);
        }
}

结果

练习1:定义一个类Demo,其中定义一个求两个数据和的方法,定义一个测试了Test,进行测试;

package cn.manman.com;
/*
 * 定义一个类Demo,其中定义一个求两个数据和的方法,
 * 定义一个测试了Test,进行测试;
 */
class Demo{
    public int shuju(int a,int b){
        return a+b;
    }
}
public class lianxi1 {
    public static void main(String[] args) {
        Demo demo=new Demo();
        int sum=demo.shuju(10, 20);
        System.out.println(sum);
    }
}

结果

练习2:定义一个长方形类,定义求周长和面积的方法,然后定义一个测试类Test,进行测试

package cn.manman.com;
/*
 * 定义一个长方形类,定义求周长和面积的方法,
 * 然后定义一个测试类Test,进行测试
 */
class Dem{
    public int zhouchang(int a,int b){
        return (a+b)*2;
    }
    public int mianji(int a,int b){
        return a*b;
    }
}
public class lianxi2 {
    public static void main(String[] args) {
        Dem dem=new Dem();
        System.out.println(dem.zhouchang(4, 2));
        System.out.println(dem.mianji(4, 2));
    }
}

结果

练习3:定义一个员工类,自己分析出几个成员,然后给出成员变量,构造方法,getXXX和setXXX方法,以及一个显示所有成员信息的方法。并测试。

package cn.manman.com;
/*
 * 定义一个员工类,自己分析出几个成员,然后给出成员变量,
 * 构造方法,getXXX和setXXX方法,
 * 以及一个显示所有成员信息的方法。并测试。
 */
class Demo11{
    private int ID;
    public int getID() {
        return ID;
    }
    public void setID(int iD) {
        ID = iD;
    }
    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;
    }
    private String name;
    private int age;    
}
public class lianxi3 {
    public static void main(String[] args) {
        Demo11 Demo11=new Demo11();
        Demo11.setID(1);
        Demo11.setName("李四");
        Demo11.setAge(12);
        System.out.println(Demo11.getName()+Demo11.getAge()+Demo11.getID());
    }
}

结果

练习4:定义一个类MyMath,提高基本的加减乘除功能,然后进行测试。

package cn.manman.com;

import java.util.Scanner;

/*
 * 定义一个类MyMath,提高基本的加减乘除功能,然后进行测试。
 */
class MyMath{
    public int add(int a,int b){
        return a+b;
    }
    public int jian(int a,int b){
        return a-b;
    }
    public int chengfa(int a,int b){
        return a*b;
    }
    public int chufa(int a ,int b){
        return a/b;
    }
}
public class lianxi4 {
    public static void main(String[] args) {
        MyMath math=new MyMath();
        Scanner scanner=new Scanner(System.in) ;
        System.out.println("请输入您的第一个数据:");
        int a=scanner.nextInt();
        System.out.println("请输入您的第二个数据:");
        int b=scanner.nextInt();
        System.out.println("求和:"+math.add(a, b));
        System.out.println("减法:"+math.jian(a, b));
        System.out.println("乘法:"+math.chengfa(a, b));
        System.out.println("除法:"+math.chufa(a, b));
    }
}

结果

相关文章

  • java中的封装

    将类的某些信息隐藏在内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问 1.封装的好...

  • Java中的封装

  • java中的封装

    封装概述: 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式,这里就会用到一个关键字是private,在后面的...

  • Java中的封装

    学习笔记参考文章:Java中的封装 推荐阅读[https://blog.csdn.net/weixin_43444...

  • Java 学习笔记(14)—— 文件操作

    java文件操作主要封装在Java.io.File中,而文件读写一般采用的是流的方式,Java流封装在 java....

  • JAVA的三大特性

    JAVA的三大特性:封装,继承,多态。 封装 1.定义: 在面向对象程式设计方法中,封装(英语:Encapsula...

  • Encapsulation in Java中的封装

    首先来看两个例子,都是给变量赋值。 在第二个setter method里,我们通过if语句对ht进行范围限制,从而...

  • Go封装、继承、多态

    封装 封装主要是通过访问权限控制实现的。 在Java中,共有public 、protected、default、p...

  • Java--封装的实现

    封装的实现-使用访问控制符 Java是使用“访问控制符”来控制哪些细节需要封装,哪些细节需要暴露的。Java中4种...

  • 类的封装继承与多态

    随着昨天的学习我们已经掌握了java中类的继承,下面我们来看看java的三大特性的其他两个,封装和多态!目录 封装...

网友评论

    本文标题:java中的封装

    本文链接:https://www.haomeiwen.com/subject/cjpfjqtx.html