Java(五)类与对象 构造方法、关键字

提到类与对象,不得不知道,Java的特点----面向对象编程。那么,面向对象有什么特点呢?

(1)封装性:内部操作对外部而言看不见。(保护性)

(2)继承性: 功能进行扩展。(复用性)

(3)多态性: 方法重载。

一 什么是类?什么是对象?类与对象有什么区别和联系?

1.1  类:是一个共性的概念。例如:人类、犬类

1.2  对象:  是一个具体的,可以使用的事物。例如:人、泰迪

1.3  类与对象的区别与联系:

      (1)有了类,才可以产生对象。

      (2) 对象的所有的行为一定在类中进行了完整定义。

1.4  类的组成:(1) 属性(变量,用来描述每个对象的特点);(2)方法(函数,用来描述对象操作的行为);

二 类如何定义?对象如何产生?

2.1  类的定义:

定义类的语法是:

class 类名称{
    属性;
    方法;
}

抽象化一个人类:每个人都有姓名与年龄,身高,性别等用来描述某个人的属性特征。并且每个人都可以有一些行为:吃、玩,睡等等。将其抽象成一个类具体如下:

class Person{
//属性
    public String name;
    public int age;
    public int height;
    public String gender;
//方法
    public void eat(){
        system.out.println("吃饭");
    }
    public void play(){
        system.out.println("玩耍");
    }
    public void sleep(){
        system.out.println("睡觉");
    }
}
 

2.2  构造方法

构造方法是一种特殊的方法,它是一个与类同名,没有返回类型也不能定义为void,在方法名前面不声明方法的方法。

对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。

构造方法的特点:

1)构造方法必须和类名相同

2)构造方法没有返回值类型声明

3)每个类至少存在一个构造方法,若没有明确声明,则有系统默认生成一个无参的构造方法。若有明确声明,则系统不会默认生成构造方法。

构造方法中还可以调用构造方法,但是必须将this()方法放在首行,否则无法进行正确编译。(下面举例说明)

上述Person类的构造方法可以有以下形式:(有参构造方法是无参构造方法的重载方法)

    public Person(){

    }
    public Person(String name,int age){
        //我的name 等于你给的 name
        this.name =name;
        this.age = age;
    }
    public Person(String name,int age,int height){
        this(name,age);
        this.height = height;
    }
    public Person(String name,int age,int height,String gender,){
        this(name,age,height);//若使用这种方式,要把this()调用放在构造方法中的第一条;否则无法正确编译。
        this.gender = gender;
    }
   
    //或者下面这种方式也可以
    public Person(String name,int age,int height,String gender){
        this.name = name;
        this.age = age;
        this.height = height;
        this.gender = gender;
    }

2.3 对象的产生

类名 对象名 = new 类名();

上述Person类可以产生对象:

 //用有参构造方法创建对象
Person person2 = new Person("alice",23);//创建对象

//无参构造方法创建对象
Person person = new Person();
person.name = "jack";
person.age = 21;

类一般用public修饰

因为类就是为了产生对象,若用private 修饰,再外域中看不到该类,则达不到产生对象的要求。

但是,再一个类的内部再创建类,可以是private修饰的

属性一般用private修饰

三 几个关键字(this,static,final)

3.1  this关键字

this关键字的作用:

(1)this 调用本类属性:

参数与类中属性相同时,类中属性无法被正确赋值,此时需要加上this 关键字便可以进行正常赋值。

(2)this 调用本类方法:

a  调用普通方法:this.方法名(参数)      当然不加this也可以正常调用,如果加上this 可以区别来自于哪,在继承中会体现这一点。

b  调用构造方法:this(参数)

        1)调用this构造方法必须放在首行

        2)构造方法调用不能成环

(3)this 表示当前对象:

只要对象调用了本类中的方法,这个this就表示当前执行的对象。

3.2 static关键字

Static : 与对象实例化无关(重要)

修饰属性:称为静态属性(类属性),用于共享属性。Eg:country

修饰方法:成为静态方法(类方法),用于工具方法,java.util.Arrays.sort();

静态方法能否调用普通属性?一定不能。因为属性需要用对象来调用,但是static修饰的静态方法无法实例化对象,所以没有办法调用普通属性。

普通方法能否调用静态属性?可以。因为静态属性仍是属性,也需要对象来进行调用,普通方法可以实例化出来对象,所以可以调用静态属性。

3.3 final关键字

在Java中,final称为终结器。

(1)final 修饰类、属性、方法

(2)final成员变量必须在声明的时候初始化或者在构造器中进行初始化,否则会发生编译报错。

(3)final一旦修饰一个类后,该类的所有方法都默认会以final修饰。(不包含成员变量)

(4)使用final定义的类不能有子类。

 

 

 

你可能感兴趣的:(java)