• 第一章 对象和封装


    1. 对象和类的区别
    2. 定义类的方法
    3. 封装的好处及步骤

    (1)对象是类的实例,类的对象的抽象:简单来说就是这样,类是一个抽象的东西它里面可以放有很多的属性和方法。当我们想要使用到类中的方法时就要对这个类进行实例化,也就是创建这个类的对象,来调用类中的方法或者使用类中的属性。我们可以由一个类创建多个对象

    (2)定义类的方法,第一步:发现类   第二步:发现类的属性  第三步:发现类的方法。    这样你就可以定义出一个你所需要的类。

    (3)封装的好处在于,隐藏类的内部细节;让使用者只能通过程序规定的方法来访问数据;可以方便地加入存取控制语句,限制不合理操作。

    单词:

    1. class:类

    2. object:对象

    3. static:静态
    4. finail:java中用来定义常量的关键字

    5. private:私有
    6. public:公有

    7. protect:保护
    8. penguin:企鹅

    9. health:健康
    10. love:爱

      1.2.1  创建类和对象

     

      下面就是一个类:

    public class Penguin{
            String name = "无名氏";
            int health = 100;
            int love = 0;
            String sex = "Q仔";
            public void print(){
             System.out.println("宠物名"+this.name+"健康值:"+this.health+"亲密度:"+this.love+"性别:"+this.sex+"。");            
        }
    }      

      那么怎么创建一个对象呢?

      我们通常是:

      通过构造方法来创建对象,如

    Penguin p = new Penguin();

      想要调用其中的属性的话通过对象名.属性名的方式调用属性。如

    p.name = "qq";

      调用方法通过  ==》 对象名.方法名。 如

    p.print();

      Java中的常量,使用关键字 ”final“ 来修饰,并且常量名通常为大写。如

    final    String     SEX_MALE  =  "Q仔";
    final    String     SEX_FEMALE = "Q妹";

    常量是指在定义完了以后就不能被修改的一个属性,常量在程序运行过程中不会发生变化,只能被引用,不能被重新赋值,也就是只能在定义时修改其值。

     1.2.2    构造方法及其重载

    什么是构造方法?构造方法就是名称和类名相同,没有返回值类型的方法。构造方法的主要作用就是在创建对象的过程中执行一些初始化操作,如给成员属性赋初始值。

    知识点==》Java和C#一样,在没有给类提供任何构造方法时,系统会提供一个无参的方法体为空的默认构造方法。一旦提供了自定义构造方法,系统将不再提供这个默认的无参构造方法。如果要使用它,则程序员要自己手动添加一个无参构造方法。

    方法的重载:方法名相同参数类型不同或者个数不同 返回值不要求。

    1.2.3    static修饰符

    static修饰符可以用来修饰属性、方法和代码块。static修饰的变量称为类变量(类属性)方法称为类方法。不使用static修饰的属性和方法属于单个对象,称为实力属性和实例方法。

    在方法里不可以定义static变量,也就时说,类变量不能时局部变量。(不能在方法里定义静态属性)

      封装是面向对象的三大特性之一,就是将类的状态信息隐藏在类的内部,不允许外部程序直接访问,而通过该类提供的方法来实现对隐藏信息的操作和访问。

      封装的具体步骤:修改属性的可见性来限制对属性的访问;为每个属性船舰一对赋值(setter)方法和取值(getter)方法。用于对这些属性的存取;在赋值方法中,加入对属性的存取控制语句。

      封装的好处:隐藏类的实现细节;让使用这只能通过程序规定的方法来访问数据;可以方便地加入存取控制语句,限制不合理操作。

      封装时会用到多个权限控制来修饰成员变量和方法,区别如下:

    1publicpublic表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用

    2privateprivate表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。

    3protectedprotected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部classprotected就变成private

    作用域 当前类 同一package 子孙类 其他package 

    public       √ √ √ √ 

    protected √ √ √ × 

    friendly     √ √ × × 

    private     √ × × × 

    不写时默认为friendly 

      1.2.4   使用this关键字

      this关键字是对一个对象的默认引用。在每个实例方法内部,都有一个this引用变量,指向调用这个方法的对象。

    this使用的实例:

    public void set Name(String name){
          this.name=name;   //成员变量和局部变量同名,必须使用this
    }
    
    public void setName(String xm){
          name=xm;     //成员变量和局部变量不同名,this可以不使用this
    }

    使用this调用成员方法:

    public void play(int n){
         health = health - n;
         this.print();       //this可以忽略,直接调用print();
    }

    使用this调用重载的构造方法,只能在构造方法中使用,必须是构造方法的第一条语句。

    public Penguin(String name ,String sex){
          this.name = name ; 
          this.sex = sex;
    }
    public Penguin(String name,int health,int love,String sex){
         this(name,health);
         this.love = love;
         this.sex = sex;
    }    

     知识点==》因为this在对象内部指代自身的引用,所以this只能嗲用实例变量、实例方法和构造方法。

    this不能调用类变量和类方法(静态方法,静态变量),也不能调用局部变量。

  • 相关阅读:
    s3c2440——按键中断
    s3c2440——swi异常
    S3C2440的七种模式之——未定义模式(去掉bl print1 bug解决)
    Entity Framework DBContext 增删改查深度解析
    Git换行符是如何精确控制的
    Entity Framework 乐观并发处理
    Session, Token and SSO 有什么区别
    2017让我受益最大的那些书--别找了,都在这里
    GDB scheduler-locking 命令详解
    Java web servers 间是如何实现 session 同步的
  • 原文地址:https://www.cnblogs.com/RCJL/p/8886763.html
Copyright © 2020-2023  润新知