java中该如何面向对象以及类的定义、使用和实例化

1.面向对象的初步认识

1.1 什么是面向对象

Java是一门纯面向对象的语言(Object Oriented Program,继承OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。

面向对象的优点用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好

1.2 面向对象与面向过程

举一个洗衣服的例子:

image.png

这是传统洗衣服的步骤

传统洗衣服的方式:注重的是洗衣服的过程,少了一个环节可能都不行

  • 不同衣服洗的方式,时间长度,拧干方式都不同,处理起来就比较麻烦。
  • 如果将来要洗鞋子,那就是另一种放方式
  • 如果按照该种方式来写代码,将来扩展或者维护起来会比较麻烦。

现代洗衣服的方式:

image.png

总共有4个对象:人、衣服、洗衣机、洗衣粉

  • 面向对象方式来进行处理,就不关注洗衣服的过程,具体洗衣机是怎么来洗衣服,如何来甩干的,用户不用去关心。
  • 只需要将衣服放进洗衣机,导入洗衣粉,启动开关即可,通过对象之间的交互来完成的

【注意事项】 面向过程和面相对象并不是一门语言,而是解决问题的方法,没有那个好坏之分,都有其专门的应用场景

下面再来举一个例子来具体描述什么是面向对象什么是面向过程

买手机的例子:

【面向过程】

  • 比如我要一个买手机。
  • 首先我在网上查看要买哪个型号的手机。
  • 选择手机的参数。
  • 选好心仪的手机,然后下单。
  • 手机到了,取快递。
  • 激活,使用。

强调的是买手机的过程,买手机用了几步,并且任何一个步骤出了问题都会影响到使用使用手机。

【面向对象】

  • 我要买手机
  • 让朋友帮我买手机,他来完成(上网查看、选参数、下单、取快递、激活使用)
  • 最后拿给我使用。

我是要使用手机,根本不需要关心买手机的步骤,手机拿回来后,我来使用就好了。

2.类的定义和使用

2.1 简单认识类

类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(外观尺寸等),哪些功能(用来干啥),描述完成后计算机就可以识别了。

//student是要描述的对象
class student {
    //对象的属性
    public int age;//年龄
    public String name;//姓名
    public String telephone;//电话

    //对象的行为
    public void eat(){
        System.out.println("吃饭");
    }
    public void sleep() {
        System.out.println("睡觉");
    }
    public void beatPeas() {
        System.out.println("打豆豆");
    }

}
public class ClassUse {
    public static void main(String[] args) {

    }
}
复制代码

2.2 类的定义格式

先来定义一个洗衣机类:

类至少有两部分组成:一个是属性、一个是行为

  • 属性叫做成员属性(有的书籍叫字段)。
  • 方法叫做成员方法(有的书籍叫方法)。
//class - 类名 -> 大驼峰
class WashMachine{
    //属性【字段】 -> 成员属性
    public String brand; // 品牌
    public String type; // 型号
    public double weight; // 重量
    public double lenght; // 长
    public double width; // 宽
    public double height; // 高
    public String color; // 颜色
    public int price;//价格

    //行为【方法】 -> 成员方法
    public void washClothes(){ // 洗衣服
        System.out.println("洗衣功能");
    }
    public void dryClothes(){ // 脱水
        System.out.println("脱水功能");
    }
    public void setTime(){ // 定时
        System.out.println("定时功能");
    }
}
public class ClassUse {
    public static void main(String[] args) {

    }
}
复制代码

【注意事项】

  • class 后面书写的是类名,类名要采取大驼峰定义(即单词首字母大写)。
  • 方法名要使用小驼峰(即方法名单词首字母小写,其余单词首字母大写)。
  • 成员前写法统一为public,后面会详细解释。
  • 此处写的方法不带 static 关键字,后面会详细解释。

3.课堂练习

3.1 定义一个猫类

//定义一个猫类
class Cat{
    public String name;//名字
    public String color;//颜色
    public int age;//年龄

    public void Purrpurr() {//咕噜噜噜
        System.out.println("咕噜咕噜");
    }
    public void Meow() { //喵喵叫
        System.out.println("喵喵");
    }
    public void Wagtail() { //摇尾巴
        System.out.println("摇尾巴");
    }
}
public class ClassUse {
    public static void main(String[] args) {

    }
}
复制代码

3.2 定义一个女朋友类

//定义一个女朋友类
class Grilfriend{
    public String name;//名字
    public int weight ;//体重
    public int age;//年龄
    public String telephone;//电话
    public int height;//身高

    public void Kiss() {//亲亲
        System.out.println("亲一个");
    }
    public void Hug() { //抱抱
        System.out.println("抱一个");
    }
    public void Coquetry() { //撒娇
        System.out.println("撒娇");
    }
}
public class ClassUse {
    public static void main(String[] args) {

    }
}
复制代码

【注意事项】

  • 一般一个文件当中只定义一个类
  • main方法所在的类一般要使用public修饰(注意:Eclipse默认会在public修饰的类中找main方法)
  • public修饰的必须要和文件名相同
  • 不要轻易去修改public修饰的类的名称,如果要修改,**通过开发工具修改。1

3.类的实例化

3.1 什么是实例化

  • 定义了一个类,就相当于在计算机中定义了一种新的类型。
  • 用类类型创建对象的过程,称为类的实例化
//定义一个女朋友类
class Grilfriend{
    public String name;//名字
    public int weight ;//体重
    public int age;//年龄
    public String telephone;//电话
    public int height;//身高

    public void Kiss() {//亲亲
        System.out.println("亲一个");
    }
    public void Hug() { //抱抱
        System.out.println("抱一个");
    }
    public void Coquetry() { //撒娇
        System.out.println("撒娇");
    }
}
public class ClassUse {
    public static void main(String[] args) {
        //实例化一个女朋友对象
        Grilfriend grilfriend = new Grilfriend();//这个时候有了一个真正的grilfriend
        grilfriend.name = "小美";
        grilfriend.age = 19;
        grilfriend.telephone = "123456789";
        grilfriend.weight = 56;
        grilfriend.height = 170;
        System.out.println(grilfriend.name);
        System.out.println(grilfriend.age);
        System.out.println(grilfriend.telephone);
        System.out.println(grilfriend.weight);
        System.out.println(grilfriend.height);

        //通过.来访问方法
        grilfriend.Kiss();
        grilfriend.Hug();
        grilfriend.Coquetry();
    }
}
复制代码

image.png

class Cat{
    public String name;//名字
    public String color;//颜色
    public int age;//年龄

    public void Purrpurr() {//咕噜噜噜
        System.out.println("咕噜咕噜");
    }
    public void Meow() { //喵喵叫
        System.out.println("喵喵");
    }
    public void Wagtail() { //摇尾巴
        System.out.println("摇尾巴");
    }
}
public class ClassUse {
    public static void main(String[] args) {
        //实例化一个Cat对象
        Cat cat = new Cat();//这个时候有了一个真正的Cat
        Cat cat1 = new Cat();//小猫1号
        Cat cat2 = new Cat();//小猫2号
        Cat cat3 = new Cat();//小猫3号
        cat.name = "小栗";
        cat.age = 3;
        cat.color = "黑色";
        System.out.println(cat.name);
        System.out.println(cat.age);
        System.out.println(cat.color);
        //通过.来访问方法
        cat.Purrpurr();
        cat.Meow();
        cat.Wagtail();
    }
}
复制代码

每一只小猫都可以有它自己的名字和颜色。

【注意事项】

  • new 关键字用于创建一个对象的实例。
  • 使用 . 来访问对象中的属性和方法。
  • 同一个类可以创建多个实例

3.2 类和对象的说明

  • 只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员。
  • 类是一种自定义的类型,可以用来定义变量。
  • 一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量。

做个比方。类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图。 只设计出需要什么东西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空间

image.png

image.png

Footnotes

  1. 注脚的解释 : 如果要修改类的名称,要使用idea来更改。
    右击要更改的文件,选中Refactor,再选中Rename File... 修改完后,点击Refactor确认修改。

猜你喜欢

转载自juejin.im/post/7130481436406054925