Day05

概念:为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。

包的作用:

        避免类重名;

        按照不同功能管理类;

        控制访问权限。

包的命名规则:

        在包名中,可以使用.号来区分包的级别;包名一般情况下是小写。

        第一级 指该项目的类型,如com(公司),org(组织),gov(政府)等;

        第二级 指项目所开发或者运行的公司名称,如:oracle,sun,huawei 等;

        第三级 指项目的名称,如:bcms,oa,erp,cms等 ;

        第四级 指项目模块的名称,如:bean,action,exception等。

        关键字import:import 使用其他包中的类时,需要导入其他包中的类 (同

一个包的类,java.lang不用导入)。

        注:Car 是类的简称 类的全称(全类名)day2.Car

访问权限修饰符

        public:公共权限 在任何类中都可以访问到。

        protected:受保护权限 在自己类中,同包的其他类中,在不通包的子类中

可以访问到。

        (default):默认权限 在自己类中,同包的其他类中。

        private:私有权限 只能在自己类中访问。

面向对象三大特征之一 封装

        概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法

来实现对隐藏信息的操作和访问 。

       优点:1)隐藏类的实现细节

                  2)只能通过规定方法访问

                  3)方便加入控制语句

                  4)方便修改实现

        普通封装: 将某个功能封装成了一个方法, 例如 写了一个工具类, 定义好了几个常用的方法 ..。

        面向对象中的封装: 是隐藏( 访问权限修饰符 private protected 默认public),将类中的某些信息

对外开发。

 private String name;//  属性私有化 只是封装的一种表示

public class Person {

    // private 将name属性隐藏,在其他类中访问不了
     private String name;
     private int age;
​
     public void setAge(int age){
          if(age>=18){
          this.age=age;
         }
     }
​
     public int getAge(){
      //........
         return age;
    }
​
    //setXXX就是为私有属性提供访问的公共方法
    public void setName(String name){
         //方便加入控制语句
        if(name.length()>3&&name.length()<6){
             this.name = name;
        }
    }
​
     public String getName(){
         return this.name;
    }
}

public class TestPerson {

    public static void main(String[] args) {
        Person zs = new Person();
        zs.setName("asdas");//name是私有属性zs访问不到
        System.out.println(zs.getName());
    }
}

例如:单例模式(模板 解决一种问题 就有一个模板 )

           单例模式解决在一个程序中,只能让一个类创建一个对象 

            
 public class WindowDemo {
    
        static  WindowDemo windowDemo=null;//WindowDemo是私有的
​
    /*
        将构造方法私有化,这样在其他类中就不能创建对象了.
    */
    private WindowDemo(){
​
    }
    //向外提供一个方法,用来创建唯一的一个对象,并返回此对象
    public static WindowDemo getWindowDemo(){
         if(windowDemo==null){
             windowDemo = new WindowDemo();
        }
        return windowDemo;
    }

}

public class TestWindow {
​
public static void main(String[] args) {
     System.out.println( WindowDemo.getWindowDemo());
     System.out.println( WindowDemo.getWindowDemo());
    }

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值