首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Java基础-Day07,面向对象的认识

Java基础-Day07,面向对象的认识

作者头像
软件小生活
发布2021-08-16 10:57:54
发布2021-08-16 10:57:54
3660
举报
文章被收录于专栏:软件小生活软件小生活

使用方法 写一遍

思路:

先写散装版的

再考虑怎么抽取方法

1) 键盘录入两个数据,返回两个数中的较大值

2) 键盘录入两个数据,比较两个数是否相等

3) 键盘录入三个数据,返回三个数中的最大值

4) 数组遍历(依次输出数组中的每一个元素)

5) 数组获取最值(获取数组中的最大值 最小值)

6) 数组元素查找 (查找指定元素第一次在数组中出现的索引)

7) 求出数组中元素的总和

Java基础-Day07

0.面向过程和面向对象 - 生活案例

  1. 洗衣服
  • 面向过程(手洗):脱衣服、找一个盆、加水、加洗衣粉、浸泡30分钟、搓洗、拧衣服、倒掉水、再加水、漂洗、拧衣服、倒掉水、晾衣服。
  • 面向对象(机洗):脱衣服、放入洗衣机、按下开关、拿出衣服晾晒。
  1. 买电脑
  • 面向过程(自己买):需要电脑、查询参数信息、横向比较机型、了解打折信息、与店家讨价还价、下单、收快递、开机验货、确认收货。
  • 面向对象(找人买):需要电脑、找秘书帮我买、收电脑。
  1. 吃饭
  • 面向过程(自己做):我饿了、买菜、洗菜择菜、切菜、起火、炒菜、盛菜、吃饭、刷碗。
  • 面向对象(出去买):我饿了、买饭、吃饭。

对于面向过程的思想:当需要实现一个功能的时候,看中的是每一个步骤怎么做,整体的过程是怎样的。每一个操作都需要自己亲力亲为。

对于面向对象的思想:当需要实现一个功能的时候,不看重具体的过程和步骤是怎样的,而是关心“谁能帮我做这件事情”。(偷懒儿,找人帮我做事儿。)

面向对象的三大特征有:封装性、继承性、多态性。

1.面向过程和面向对象对比

代码语言:javascript
复制
publicclass Demo {
  publicstaticvoid main(String[] args) {
  int[] array = { 10, 20, 30, 2 };
         System.out.print("[");
  for (inti = 0; i < array.length; i++) {
  if (i == array.length - 1) {
                   System.out.println(array[i] + "]");
              } else {
                   System.out.print(array[i] + ",");
              }
         }
     }
}

面向对象版

代码语言:javascript
复制
 publicstaticvoid main(String[] args) {
  int[] array = { 10, 20, 30, 2 };
         String str = Arrays.toString(array);
         System.out.println(str);
     }

2.面向对象中常见概念

我们学习编程语言,就是为了模拟现实世界中的事物,实现信息化来提高工作效率。例如银行的业务系统、超市的结账系统等,都是如此。那么现实世界的事物通常分成两个组成部分:

  1. 属性:事物的特征描述信息,“是什么”。
  2. 行为:事物的能力行动方案,“能做什么”。

面向对象的语言当中,“类”就是用来模拟现实事物的。类中也有属性、行为两个组成部分,而“对象”是类的具体实例。例如:

  1. :抽象的,是一张“手机设计图”。
  2. 对象:具体的,是一个“真正的手机实例”。

3.Java中类

类是面向对象中最小单位(组成部分)

3.1.类的定义

类是用来模拟现实事物的代码手段,事物分成属性、行为两个部分,类当中也对应地包含两个部分:

  1. 成员变量(属性):将变量位置直接定义在类中,在方法外,即为成员变量。
  2. 成员方法(行为):将普通的方法去掉static关键字,即为成员方法。

代码实战:

代码语言:javascript
复制
*
 *
 *
 *
 * 类中包含:
 *
 * 1)属性
 *    String name;
 *    String color;
 *
 * 2)方法
 *       public void call(){}
 *       public void sendMessage(){}
 *
 * @author newuser
 *
 */
publicclass Phone {
      String name;
      String color;
  publicvoid call()
      {
      System.out.println("呼叫女神中..");
      }
  publicvoid sendMessage()
      {
      System.out.println("今晚子9:00在酒吧见面!!!");
      }
}

接下来思考:有了类,我们该如何使用呢?

3.2.对象介绍

3.2.1.对象创建

类如同一张设计图纸,通常情况下不能直接使用;要想使用,则需要根据类创建一个真正的对象,然后使用对象中的功能。根据类创建对象的格式为:

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

代码语言:javascript
复制
publicstaticvoid main(String[] args) {
    Phone p = new Phone();
    Phone p2 = new Phone();
    Phone p3 = new Phone();
    Phone p4 = new Phone();
}

3.2.2.对象使用

对象是根据类创建出来的,所以内部包含成员变量、成员方法两个组成部分。使用它们的格式如下:

  1. 使用成员变量:对象名.成员变量名
  2. 调用成员方法:对象名.成员方法名(参数)
代码语言:javascript
复制
publicstaticvoid main(String[] args) {
     Phone p = new Phone();
//   Phone p2 = new Phone();
//  
//   Phone p3 = new Phone();
//  
//   Phone p4 = new Phone();
     System.out.println(p.name);  // null
     System.out.println(p.color);  // null
     System.out.println(p.camera); // 0
  // 进行赋值操作(改变默认的值)
  p.name = "Iphone XXX";
  p.color = "土豪豪金";
  p.camera = 8;
     System.out.println(p.name);
     System.out.println(p.color);
     System.out.println(p.camera);
  // 调用方法
  p.call();
  p.sendMessage();
}

3.2.3.练习题

编写学生类

编写汽车类

4.private 关键字

如果类当中有一些成员不希望被外界直接访问,那么可以使用private关键字进行修饰,从而达到确保数据安全的目的。

private关键字是面向对象三大特征(封装、继承、多态)之一封装性的重要体现。

代码语言:javascript
复制
publicclass Person {
   String name;
  intage;
  publicvoid sayHello()
   {
         System.out.println("我叫:"+name+"我今年"+age+"岁了");
   }
}
代码语言:javascript
复制
publicstaticvoid main(String[] args) {
   Person p = new Person();
  p.sayHello();
  p.name = "凤姐";
  p.age = 10;
  p.sayHello();
}

观察:

修改年龄 为负数试试??

问题描述:定义Person的时候,其中的age年龄不应该为负数,但是却无法控制它的取值范围,数据不安全。

解决方案:使用private关键字。

* 一旦使用了private关键字对成员进行了修饰,那么超出了本类范围之外,就不能直接访问了。

使用private 修饰

代码语言:javascript
复制
publicclass Person {
   String name;
  private  intage;
  publicvoid sayHello()
   {
         System.out.println("我叫:"+name+"我今年"+age+"岁了");
   }
}

注意观察:

* 如果需要使用private修饰的成员变量,可以使用“间接访问”

* 为private成员变量编写一对儿Setter Getter方法。

代码语言:javascript
复制
publicclass Person {
   String name;
  private  intage;
  publicvoid sayHello()
   {
         System.out.println("我叫:"+name+"我今年"+age+"岁了");
   }
  // 设置成员变量的方法  setter
  publicvoid setAge(intnum)
   {
  age = num;
   }
  // 获取成员变量的方法   getter
  publicint getAge()
   {
  returnage;
   }
}

在setter中进行判断

5.this关键字

6.构造方法

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件小生活 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java基础-Day07
  • 0.面向过程和面向对象 - 生活案例
  • 1.面向过程和面向对象对比
  • 2.面向对象中常见概念
  • 3.Java中类
    • 3.1.类的定义
    • 3.2.对象介绍
    • 3.2.1.对象创建
    • 3.2.2.对象使用
    • 3.2.3.练习题
  • 4.private 关键字
  • 5.this关键字
  • 6.构造方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档