zoukankan      html  css  js  c++  java
  • Java 从入门到进阶之路(六)

    之前的文章我们介绍了 Java 的数组,本章我们来看一下 Java 的对象和类。

    Java 是一种面向对象语言,那什么是对象呢,对象在编程语言中属于一个很宽泛的概念,我们可以认为万事万物都是对象,每个对象都有其状态和行为,例如一只狗会有颜色,品种,性别等状态,也有跑,吃,睡等行为。

    在编程语言中,会用一个类来承载这个对象,类是一个模板,它描述一类对象的行为和状态。

    在之前的文章中我们没有引入对象的概念,如果我们想要打印输出一个人的基本信息,如下:

     1 public class HelloWorld {
     2     public static void main(String[] args) {
     3         String name = "zhangsan";
     4         int age = 18;
     5         String gender = "男";
     6         print(name,age,gender); // 姓名:zhangsan 年龄:18 性别:男
     7     }
     8 
     9     static void print(String name, int age, String gender) {
    10         System.out.print("姓名:"+ name);
    11         System.out.print("年龄:"+ age);
    12         System.out.print("性别:"+ gender);
    13     }
    14 }

    上面其实是一个面向过程的编程,我们先定义一个 print 方法,分别传入姓名,年龄,性别,然后再分别打印输出,我们就可以定义变量,年龄,性别,调用该 print 方法来实现我们想要的功能。

    其中有一个问题就是当我们需要再次输出另一个人的信息时,我们需要再次将 name,age,gender 传入,其实我们可以将这三个变量定义到一个对象中来使用,如下:

     1 public class HelloWorld {
     2     public static void main(String[] args) {
     3         Emp e = new Emp(); // 创建一个 Emp 对象
     4         e.name = "zhangsan";
     5         e.age = 18;
     6         e.gender = "男";
     7         print(e); // 姓名:zhangsan 年龄:18 性别:男
     8     }
     9 
    10     static void print(Emp e) {
    11         System.out.print("姓名:"+ e.name);
    12         System.out.print("年龄:"+ e.age);
    13         System.out.print("性别:"+ e.gender);
    14     }
    15 }
    16 
    17 class Emp{
    18     String name;
    19     int age;
    20     String gender;
    21 }

    在上面的代码中,我们将 print 方法中传入的变量变成了一个 Emp 对象,Emp 对象是我们自己定义出来的,它和我们之前所讲的 Array 其实是一个道理:  arr = new int[5]; ,生成一个 5 个长度的数组。

    在上面的代码中,我们定义的 print 方法其实作用就是用于输出打印我们需要的信息,我们同样也可以将其放到我们定义的 Emp 类中,如下:

     1 public class HelloWorld {
     2     public static void main(String[] args) {
     3         Emp e = new Emp(); // 创建一个 Emp 对象
     4         e.name = "zhangsan";
     5         e.age = 18;
     6         e.gender = "男";
     7         e.print(); // 姓名:zhangsan 年龄:18 性别:男
     8     }
     9 }
    10 
    11 class Emp {
    12     String name;
    13     int age;
    14     String gender;
    15 
    16     void print() {
    17         System.out.print("姓名:" + name);
    18         System.out.print("年龄:" + age);
    19         System.out.print("性别:" + gender);
    20     }
    21 }

    至此我们其实就已经果果面向对象的思维定义了一个类,当我们需要再定义另一个人的信息时,直接调用该对象的属性和方法就可以了。

    在我们初学编程语言的时候,都是由面向过程慢慢开始的深入到面向对象的,但面向过程由很多缺点,如下:

    1、缺乏对数据的封装

    2、数据和方法分离了

    如上面的例子中最开始我们需要什么数据都是先自己定义,数据 name age gende 和方法 print 是分开的,后来我们改为统一到一个 Emp 类中,这样就做到了数据和方法的统一。

    我们接下来看下面的代码:

     1 public class HelloWorld {
     2     public static void main(String[] args) {
     3         Emp e = new Emp(); // 创建一个 Emp 对象
     4         e.print(); // 姓名:null 年龄:0 性别:null
     5     }
     6 }
     7 
     8 class Emp {
     9     String name;
    10     int age;
    11     String gender;
    12 
    13     void print() {
    14         System.out.print("姓名:" + name);
    15         System.out.print("年龄:" + age);
    16         System.out.print("性别:" + gender);
    17     }
    18 }

    在创建 Emp 对象后,我们并没有对类的 name age 和 gender 进行赋值,直接调用 print() 方法,结果并没有出现编译错误,这是由于在我们定义一个变量的时候,java 会为我们提供一个默认的值,字符串为 null,数字为 0。

  • 相关阅读:
    汇编语言-端口和外中断
    汇编语言-标志寄存器
    汇编程序-更灵活的定位内存地址方法
    汇编语言-[BX]和loop指令
    汇编语言-环境安装及各个寄存器介绍
    读书笔记-原码, 反码, 补码 详解
    读书笔记-整洁代码编写
    iOS-SQLite数据库使用介绍
    JSP-tag文件使用介绍
    【】maven 配置启动tomcat版本,修改默认的6.x.x版本
  • 原文地址:https://www.cnblogs.com/weijiutao/p/11082571.html
Copyright © 2011-2022 走看看