JAVA封装

单词说明
this这,这个
static静态的
overloaded重载,超载
overloaded method方法重载
public公共的
private私有的

一、什么是封装

        封装就是隐藏实现细节,将属性私有化,提供共有方法访问私有属性。

        封装可以实现:

  • 修改属性的可见性来限制对属性的访问。
  • 为每个属性创建一对赋值(setter)方法和取值(getter) 方法,用于对这些属性的访问。
  • 在setter和getter方法中,加入对属性的存取限制。

  • 使用private关键字封装私有属性。

二、构造方法

        构造方法负责对象成员的初始化工作,为实例变量赋予合适的初始值。

        构造方法必须同时满足方法名和类名相同没有返回值这两个条件。

        使用new关键字调用构造方法:

        通过带参数的构造方法,显式地为实例变量赋予初始值:

        通过调用带参数的构造方法,简化对象初始化的代码:

三、方法地重载

        重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

        每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。

        最常用的地方就是构造器的重载。

public class Overloading {
    public int test(){
        System.out.println("test1");
        return 1;
    }
 
    public void test(int a){
        System.out.println("test2");
    }   
 
    //以下两个参数类型顺序不同
    public String test(int a,String s){
        System.out.println("test3");
        return "returntest3";
    }   
 
    public String test(String s,int a){
        System.out.println("test4");
        return "returntest4";
    }   
 
    public static void main(String[] args){
        Overloading o = new Overloading();
        System.out.println(o.test());
        o.test(1);
        System.out.println(o.test(1,"test3"));
        System.out.println(o.test("test4",1));
    }
}

        构造方法重载是方法重载的典型示例:

 四、this关键字

         每个对象都有自己独立的数据成员, 但是所有的对象共享成员方法。每个成员方法都有一个隐含的this引用,它总是指向调用它的对象。关键字this给出用于调用成员方法的对象的地址,每当调用成员方法时,编译器会向this分配调用该方法的对象的地址,可以像使用任何引用那样使用this。

五、静态成员变量

        在成员变量前加static关键字,可以将其声明为静态成员变量。如果类中成员变量被定义为静态,那么不论有多少个对象,静态成员变量只有一份内存拷贝,即所有对象 共享该成员变量。静态成员变量的作用域只在类内部,但其生命周期却贯穿整个程序。

class Dog
{
    public static int count = 0; //静态成员变量

    public Dog() //构造方法
    {
        count++;
    }
}

public class Test
{
    public static void main(String[] args)
    {
        System.out.println("当前狗的数量是:" + Dog.count);
        Dog d1 = new Dog();
        Dog d2 = new Dog();
        System.out.println("当前狗的数量是:" + Dog.count);
    }
}

        静态成员变量和程序同生命周期,在没有实例化对象时,可以通过类名访问静态成员变量。也可以通过对象访问静态成员变量,但不论使用的是哪个对象,访问到的都是同一个变量。静态成员变量在声明时最好初始化,如果不进行初始化,系统会默认初始化为初始值。

六、静态成员方法

        在成员方法前加static关键字,可以将其声明为静态成员方法。

        静态成员方法只能对类的静态成员变量进行操作。

        静态成员方法没有this引用。

        在没有实例化对象时,可以通过类名访问静态成员方法。

class Dog {
    private static int count = 0; //静态成员变量
    public Dog() {
        count++;
    }
    //显示数量的方法,静态成员方法
    public static void displayCount() {
        System.out.println("当前狗的数量是:" + count);
    }
}

public class Test {
    public static void main(String[] args) {
        //没有实例化对象之前,直接通过类名调用静态成员方法
        Dog.displayCount();
        Dog d1 = new Dog();
        Dog d2 = new Dog();
        Dog.displayCount();
    }
}

        

  • 静态成员包括静态成员属性和静态成员方法。
  • 静态成员属于整个类而不是属于某个对象,它被该类的所有对象共享。
  • 访问静态成员时一般通过类名访问,也可以通过对象访问。
  • 静态成员也受访问权限的约束。
  • 静态数据成员在使用之前应尽量初始化。
  • 静态成员方法不能操作非静态成员。
  • 静态成员方法没有this引用。

结束!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值