Java的特征——封装

封装

	封装从字面上来理解就是包装的意思,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细,但可以通过该对象对外的提供的接口来访问该对象。
    对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作。

使用封装的好处:

     1.良好的封装能够减少耦合。
     2.类内部的结构可以自由修改。
     3.可以对成员进行更精确的控制。
     4.隐藏信息,实现细节。提供公共的访问方式
     5.提高了代码的复用性和安全性。

private关键字

    1.可以修饰成员变量和成员方法
	2.被其修饰的成员只能在本类中被访问
 	3.变量使用了private进行修饰以后其作用域就只在该类当中,导包后其他类是无法直接访问的。
	4.可以使用getter和setter进行间接访问
	格式:必须使用 set/get+变量名(变量名第一个字母大写)
	对于使用get方法,无需参数,必须有返回值。
	对于使用set方法,必须传递参数,无需返回值。
	例子:
1.  public class Test {

    public static void main(String[] args) {
        System.out.println("main......");
        Quzq obj = new Quzq();
        System.out.println(obj.x);    // 这里访问不了, 会报错
        System.out.println(Quzq.y);   // 同上, 因这两个属相都使用private封装过了
    }

}

2.   public class Person {
 
     String name; 
     private int age; 
 
     public void show() {
         System.out.println("我叫:" + name + ",年龄:" + age);
    }
 
     // 用于向age设置数据
    public void setAge(int num) {
         if (num < 100 && num >= 9) { 
            age = num;
         } else {
             System.out.println("数据不合理!");
         }
     }
     // 用于获取age的数据
     public int getAge() {
         return age;
    }

this关键字

1.this关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性。
public class Demo{
    public int x = 10;
    public int y = 15;
    public void sum(){
        // 通过 this 点取成员变量
        int z = this.x + this.y;
        System.out.println("x + y = " + z);
    }
  
    public static void main(String[] args) {
        Demo obj = new Demo();
        obj.sum();
    }
}
2.使用this区分同名变量
成员变量与方法内部的变量重名时,如果要在在方法内部调用成员变量的话只能使用this。
public class Demo{
    public String name;
    public int age;
  
    public Demo(String name, int age){
        this.name = name;
        this.age = age;
    }
  
    public void say(){
        System.out.println("网站的名字是" + name + ",已经成立了" + age + "年");
    }
  
    public static void main(String[] args) {
        Demo obj = new Demo("CSDN", 10);
        obj.say();
    }
}
3.作为方法名来初始化对象
也就是相当于调用本类的其它构造方法,它必须作为构造方法的第一句。
public class Demo{
    public String name;
    public int age;
   
    public Demo(){
        this("CSDN", 10);
    }
  
    public Demo(String name, int age){
        this.name = name;
        this.age = age;
    }
  
    public void say(){
        System.out.println("网站的名字是" + name + ",已经成立了" + age + "年");
    }
  
    public static void main(String[] args) {
        Demo obj = new Demo();
        obj.say();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值