Java基础(七)面向对象

什么是面向对象

在日常生活中,人们会关注对象,关注事物信息,关注现实存在的事物的各方面的信息。因此,面向对象,就是从对象的角度出发,根据事物的特征进行程序设计。

    

类和对象

类是模子,用来确定对象将会拥有什么样的特征(属性)和行为(方法)。

对象是类的实例表现。

类是对象的类型。

对象是特定类型的数据。

对象:用来描述客观事物的一个实体。

类:具有相同属性和方法的一组对象的集合。

语法:

    //定义类

    public class 类名 {

        //定义属性部分

        [访问修饰符] 数据类型 属性名;



        //定义方法部分

        [访问修饰符] 返回类型 方法名(参数) {



        }

    }

 

创建并引用对象

    类名 对象名 = new 构造方法();

    对象名.属性

    对象名.方法名()

 

属性和方法

属性:对象具有的各种静态特征。

           “对象有什么”

方法:对象具有的各种动态行为。

           “对象能做什么”

 

类和对象的关系

类,是一个抽象的概念,我们可以理解为模板,用于生产实体。

对象

通过模板生成的,一个看得到、摸得着的具体实体。

 

 

包名的推荐命名规范

1、英文字母小写

2、域名的倒序

package com.pino.animal;

package com.pino.animal;

public class Cat {

    //成员属性:昵称、年龄、体重、品种

    String name;  //String类型默认值为null

    int month;    // int 类型默认值为0

    double weight;   //double 类型默认值为0.0

    String species;  

    //成员方法:跑动、吃东西

    public void run() {

        System.out.println("小猫快跑");

    }

    public void eat() {

        System.out.println("小猫吃鱼");

    }

}
package com.pino.animal;

public class CatTest {

    public static void main(String[] args) {

        //对象实例化

        Cat one = new Cat();

        //测试

        one.eat();

        one.run();

        System.out.println("昵称:"+one.name);

        System.out.println("年龄:"+one.month);

        System.out.println("体重"+one.weight);

        System.out.println("品种:"+one.species);

    }

}

 

对象实例化

通过上面的 demo,我们可以总结一下,实例化对象的过程可以分为两部分:

        声明对象 Cat one 会在内存的栈空间中开辟一块区域,取名为 one ,这个时候 one 指向的内容为null,我们并不能像真正的对象那样使用它。

        实例化对象 new Cat();    会在内存的堆空间中开辟一块区域,完成对象的初始化工作。通过赋值符号(=)把该堆内存地址赋值给变量 one 。

 

 

构造方法

也叫构造函数、构造器。

构造方法不能被对象单独调用,必须配合 new 关键字来使用。

注意:

1、构造方法与类同名且没有返回值。

2、构造方法的语句格式。

public 构造方法名(){

    //初始化代码

}

3、只能在对象实例化的时候调用。

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

5、当有指定构造方法时,无论是有参、无参的构造方法,都不会自动添加无参的构造方法。

6、一个类中可以有多个构造方法——构造方法重载

 

无参构造方法

通过下图,我们可以清晰看到构造方法的格式和注意事项。

 

成员属性的初始值

类中的成员属性,数据类型为基本类型,且没有赋值时,默认值如下图:

 

package com.pino.animal;

public class Cat {

    //成员属性:昵称、年龄、体重、品种

    String name;  //String类型默认值为null

    int month;    // int 类型默认值为0

    double weight;   //double 类型默认值为0.0

    String species;

    public Cat() {

        System.out.println("调用了无参构造方法");

    }

}
package com.pino.animal;

public class CatTest {

    public static void main(String[] args) {

        //对象实例化

        Cat one = new Cat();

    }

}

/**  output

调用了无参构造方法

*/

 

带参构造方法

this关键字

      this : 当前对象的默认引用。

this的使用

      调用成员属性,解决成员属性和局部变量同名冲突。

      调用同一个类中的成员方法。

      调用重载的构造方法。

    

package com.pino.animal;

public class Cat {

    //成员属性:昵称、年龄、体重、品种

    String name;  //String类型默认值为null

    int month;    // int 类型默认值为0

    double weight;   //double 类型默认值为0.0

    String species;



    public Cat() {

        System.out.println("调用了无参构造方法");

    }

    public Cat(String name, int month, double weight, String species) {

        //通过this()调用构造方法必须放在方法体内第一行

        this();

        this.name = name;

        this.month = month;

        this.weight = weight;

        this.species = species;

    }

}
package com.pino.animal;

public class CatTest {

    public static void main(String[] args) {

        //对象实例化

        Cat one = new Cat("乐乐", 3, 11.0, "波斯猫");

        System.out.println("昵称:"+one.name);

        System.out.println("年龄:"+one.month);

        System.out.println("体重"+one.weight);

        System.out.println("品种:"+one.species);

    }

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值