第一章 对象和封装

  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不能调用类变量和类方法(静态方法,静态变量),也不能调用局部变量。

 

posted @ 2018-11-23 10:55  宇宙无敌狗蛋  阅读(290)  评论(0编辑  收藏  举报