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

1.面向对象的初步认识

1.1 什么是面向对象

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

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

1.2 面向对象与面向过程

举一个洗衣服的例子:


这是传统洗衣服的步骤

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

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

现代洗衣服的方式:


总共有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();
    }
}

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 类和对象的说明

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

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




Footnotes

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

相关推荐

最近和朋友聊天,她说了句让我震惊的话:"我发现我连周末点外卖都开始'最优解'了,一定要赶在高峰期前下单,不然就觉得自己亏了。"这不就是典型的"班味入侵"吗?工作思维已经渗透到生活的方方面面。
小型域名服务器:啊?我一直都这样啊?我还以为是我爱贪小便宜呢?每次去实验室都得接一杯免费的开水回去,出门都得规划一下最短路径,在宿舍就吃南边的食堂,在实验室就吃北边的食堂,快递只有顺路的时候才取。
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务