[学习笔记] Java面向对象之对象和封装

# 学习 # · 2020-06-19

面向对象

1、面向对象的过程:①发现类;②发现类的属性;③发现类的方法。

2、创建类和对象:

/**
 *宠物类
 */
public class Dog {
    String name = 'SmallDog';       //类中的成员变量(属性)
    public void print() {         //类中的方法
        System.out.print('name:' + this.name);
    }
    this.name;        //调用当前对象的属性
    this.print();   //调用当前对象的方法
}
/**
 *主类
 */
public class test {
    public static void main(String[] args) {
        Dog d = new Dog();    //通过构造方法来创建对象
        d.name = 'NewName';    //对象名.属性名调用属性
        d.print();            //对象名.方法名调用方法
    }
}

3、类的基本结构:属性(成员变量或成员属性)和行为(成员方法)。


构造方法

1、构造方法的作用:在创建对象时执行一些初始化操作。

2、构造方法的分类:无参构造和有参构造。

3、构造方法的语法规则:方法名与类名相同,无返回值 ,与访问修饰符无关。

public class Demo {
    public Demo() {
        System.out.println("这是无参构造方法");
    }
    public Demo(String name) {
        System.out.println("这是有参构造方法,参数name的值位" + name);
    }
}

4、构造方法的特点:

(1)当没有指定构造方法时,系统会自动添加无参的构造方法。

(2)构造方法可以重载:方法名相同,但参数不同的多个方法,调用时会自动根据不同的参数选择相应的方法。

(3)构造方法不能被继承。

(4)自定义一个有参构造方法,系统就不在默认分配无参构造,使用无参构造时必须手动添加无参构造的定义。


方法重载

1、方法重载的语法规则:在同一个类中,方法名相同,参数列表(个数,类型,顺序)不同。

public class Demo {
    public int test(){
        System.out.println("test1");
        return 1;
    }

    public String test(int a,String s){
        System.out.println("test2");
        return "test2";
    }

    public String test(String s,int a){
        System.out.println("test3");
        return "test3";
    }
}

static修饰符和final修饰符

1、通常把static修饰的属性和方法称为类属性(类变量)和类方法,不用static修饰的属性和方法称为实例属性(实例变量)和实例方法。

public class Demo {
    private static int num = 0;    //类变量、类属性、静态变量
    private name = "ceo";          //实例属性、实例变量

   protected static int getCount() {  //类方法、静态方法
      return num;
   }

    static {  //修饰代码块
        System.out.println("ok");
    }
}

2、static修饰变量:在方法里不能定义static变量,即类变量不能是局部变量。

3、static修饰方法:实例方法可以直接访问静态变量和静态方法,静态方法不可以直接访问实例变量和实例方法,必须使用对象引用。静态方法中不能使用this和super关键字。

4、static修饰代码块:静态代码块仅被执行一次,并且在类加载时就开始执行,优先于类中的方法。

5、final修饰变量:final对象的引用不能改变,但是里面的值可以改变。final修饰符通常和static修饰符一起使用来创建类常量。

6、final修饰方法:类中的Final方法可以被子类继承,但是不能被子类修改。声明final方法的主要目的是防止该方法的内容被修改。


封装

1、步骤:修改属性的可见性,为每一个属性创建一对赋值(setter)方法和取值(getter)方法,在赋值方法中,加入对属性的存取控制语句。

public class Demo {
    private String name = null;
    public String getName() {  //取值方法
        return name;
    }

    public void setName(String name) {  //赋值方法
        this.name = name;
    }
}

this关键字

1、this.属性名称:访问类中的成员变量,用来区分成员变量和局部变量的重名问题。

2、this.方法名称:用来访问本类的成员方法。

3、this():访问本类的构造方法。括号中可以有参数,如果有参数,就调用指定的有参构造。

4、this()不能使用在普通方法中,只能写在构造方法中,且必须是构造方法中的第一条语句。

5、this不能调用类变量和类方法,也不能调用局部变量。

如无特殊说明,本博所有文章均为博主原创。

如若转载,请注明出处:一木林多 - https://www.l5v.cn/archives/19/

评论