千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:重庆千锋IT培训  >  技术干货  >  一文了解Java面向对象中的类

一文了解Java面向对象中的类

来源:千锋教育
发布人:lxl
时间: 2023-03-31 11:24:27

  本篇文章中,再单独给大家详细介绍Java中类的概念,让大家加深对面向对象的理解。

  一. 类的简介

  1. 概念

  要掌握面向对象,我们就不得不先了解一下什么是类。类是对表示客观世界中某类群体的一些基本特征的抽象。它会在一组相同或相似的对象中,抽取出共性的特征和行为,保留我们所关注的部分。

  很久以前上大学时,去生产手机设备的电子厂做过暑假工。当时那个厂子是给摩托罗拉生产手机壳的,你们知道手机壳是怎么生产的吗?肯定不是靠人力把一个个壳子给雕刻出来,而是利用专门的“模具”来生产。就是每一款手机设计出来之后,就会针对该款手机的外形进行“开模”,先生产出一款手机外壳的“模具”。接下来工厂里面就调制出所需的塑料(液体形态),把这个液体的塑料往模具里一倒一压,等冷却后抠出来就是一个个的手机壳了。

  其实这样的场景,壹哥相信很多人都见过,我们家里做饭用的大铁锅、洗脸盆等用品,也都是通过对应的模具生产出来的。

  那么大家想一下,这个“模具”不就是“对某类群体的一些基本特征的抽象”吗?把所有手机壳或者是锅碗瓢盆的“共性的特征和行为抽取出来”!所以,“模具”就是一个“类”,“类”就是一个“模具”!我们可以利用“类”生产出很多同类的“产品”,这些个产品就是“对象”。

  2. 类与对象的关系

  类是对象的抽象,对象是类的具体。也就是说,类是一种概念模型,定义了对象的所有特性和所需的操作。而对象是一个真实的模型,是一个具体的实体。所以类是描述了一组具有相同特性(属性)和相同行为(方法)的一组对象的集合。

  类是构造面向对象程序的基本单位,是抽取了同类对象的共同属性和方法所形成的对象或实体的“模板”。而对象则是现实世界中实体的描述,对象要创建才存在,有了对象才能对对象进行操作。概括总结就是:

  类定义了对象应具有的特征和行为,类是对象的模板;

  对象是拥有多个相同特征和行为的实体,对象是类的实例。

  所以,类是对象的模板,对象是类的实例。面想对象其实就是从具体到抽象,再从抽象到具体的过程。就好比“人类”是一个类别的统称,但并不是某个具体的对象“张三、李四”;而“张三、李四”则是一个个具体的“对象”,不是“人类”。

  3. 类的组成

  在一个类中,主要包括两个核心要素,即属性和行为。属性其实就是类中的各种变量,行为其实就是类中的各种方法。

  属性:对应着各种变量,包括成员变量、类变量等;

  行为:对应着各种方法,包括实例方法、静态方法、静态代码块等。

  接下来会给大家讲解如何创建一个类,并介绍以上这些概念该如何用代码定义,另外我们也会在后面通过专门的文章来学习这些内容。

  二. 类的创建

  1. 创建步骤

Java面向对象中的类

  我们要用代码创建一个类,可以按如下几个步骤进行实现:

  确定类名;

  2. 编写成员变量;

  3. 编写成员方法。

  通过以上步骤,一个类就可以创建出来了。

  2. 基本语法

  在 Java 中,定义一个类需要使用 class 关键字、类名和一对表示程序体的大括号,基本语法如下:

  [public][abstract|final]class<class_name>[extends<class_name>][implements<interface_name>] {

  //属性部分

  <property_type>;

  <property_type>;

  <property_type>;

  ......

  //方法部分

  method1();

  method2();

  method3();

  ......

  }

  在上述语法中,“[]”中括号里的部分是可选的,可以省略,中括号外面的部分则是必须的。“|”竖线表示“或的关系”,比如abstract|final,说明可以使用abstract 或 final 关键字,但这两个关键字不能同时出现。

  3. 关键字

  在上述语法中,出现的各关键字含义如下:

  public:表示“公共的”,使用 public 修饰,该类就可以被其他类和程序访问。Java程序的主类必须是 public类,凡是需要作为公共工具供其他类和程序使用的类都应定义为 public类。

  abstract:表示“抽象的”,被abstract修饰的类是抽象类。抽象类不能被实例化,抽象类中可以有抽象方法(使用 abstract修饰的方法) 和具体方法(没有使用 abstract修饰的方法)。继承抽象类的所有子类,都必须实现该抽象类中所有的抽象方法(除非子类也是抽象类)。

  final:常量修饰符。被final修饰的类不允许被继承。

  class:声明类的关键字。

  class_name:类的名称。

  extends:表示继承的关键字,表示一个类继承其他类。

  implements:表示实现的关键字,表示一个类实现某些接口。

  property_type:成员变量的类型。

  property:成员变量的名称。

  method():成员方法的名称。

  4. 命名规则与规范

  既然我们要创建一个类,必须给该类起一个名字,这就是“类名”。Java类名的命名规则,也要遵循我们前面学过的Java命名规范,让我们再来复习一下Java的命名规则与规范吧:

  ①. 标识符由 字母(含英、中、日、俄等)、数字、下划线"_" 和 美元符号$ (音: dollar)组成,如age、G7、_value、$salary;

  ②. 不能以数字开头,如123abc;

  ③. 严格区分大小写,如class与Class是不同的;

  ④. 长度无限制(一般不要超过15个字符);

  ⑤. 不能是Java中的保留字和关键字。

  以上这些是必须要遵循的规则,还有一些建议我们遵守的规范,如下:

  标识符命名习惯:尽量做到见名知意,如Order订单类,不要写a、b、c这种名称;

  变量名/方法名/参数名:首字母要小写。如果名称由多个单词组成,第一个单词的首字母应小写,剩下的单词首字母应大写(驼峰式命名法),例如:xxxYyyZzz、numCounter;

  类名: 单词首字母应大写,如果类名由多个单词组成,每个单词的首字母都应大写(帕斯卡命名法),例如:XxxYyyZzz、OrderCancel;

  所以我们在给类进行命名时,也要遵守以上规则和规范。

  5. 基本案例

  学习了以上这些理论内容之后,我们通过一个小案例来感受一下如何创建一个类。

  /**

  * @author 一一哥Sun

  * QQ:2312119590

  * CSDN、掘金、知乎找我哦

  */

  public class Person {//类名首字母大写,要见名知意

  //定义属性

  // 姓名

  public String name;

  // 性别

  private String sex;

  // 年龄

  private int age;

  //定义方法

  /**

  * 吃饭

  */

  public void eat() {

  System.out.println("我会吃饭...");

  }

  /**

  * 说话

  */

  public void speak(String name, String sex, int age) {

  System.out.println("我会说话...我的名字是:" + name + ",性别:" + sex + ",年龄=" + age);

  }

  }

  我们在上面的代码中,就是按照创建类的3个核心步骤进行实现的:

  声明类:给类起一个合格的名字。

  编写类的属性:类的属性就是类中的变量,通过在类的主体中定义变量来描述类所具有的特征。类中声明的变量分为类的成员变量和静态变量。

  编写类的方法:类的方法描述了类所具有的行为,它们是类的成员方法,我们可以简单地把方法理解成可以独立完成某个功能的单元模块。

  大家注意,类中的属性和方法都是类的成员。

  三. 属性的定义

  在上面给大家讲了,类的成员包括属性和方法,其中方法的定义我会放在以后进行专门地讲解,今天我们先来学习一下属性的定义。

  1. 属性简介

  类中的属性,其实就是类中的变量,通过在类的主体中定义变量来描述类所具有的特征。类中声明的变量分为类的成员变量(实例变量)和静态变量(类变量)。

  2. 基本语法

  我们要想定义类的属性,应该遵循一定的语法格式,如下:

  [public|protected|private][static][final]<variable_name>

  上面语法中,各参数的含义如下:

  public、protected、private:访问修饰符。用于表示成员变量的访问权限。

  static:静态修饰符。表示该成员变量为类变量,也称为静态变量。

  final:常量修饰符。表示将该成员变量为常量,其值无法被改变。

  type:变量的类型。

  variable_name:变量名称。

  我们可以在声明变量的同时对其进行初始化,如果声明变量时没有对其进行初始化,则系统会使用默认值进行初始化。接下来我们就通过一个代码案例来学习属性的定义。

  3. 基本案例

  public class Car {

  // 汽车品牌

  public String logo;

  // 汽车颜色

  private String color;

  // 汽车价格

  private double price;

  //静态常量:定义一个字符串常量

  public static final String CAR_MANUFACTURER="大众";

  /**

  * 为私有的成员变量提供对外的公开方法,方便其他类对该属性进行访问。

  * 获取汽车的logo

  */

  public String getLogo() {

  return logo;

  }

  /**

  * 为汽车的logo重新赋值

  * @param logo

  */

  public void setLogo(String logo) {

  this.logo = logo;

  }

  public String getColor() {

  return color;

  }

  public void setColor(String color) {

  this.color = color;

  }

  public double getPrice() {

  return price;

  }

  public void setPrice(double price) {

  this.price = price;

  }

  //复写toString方法,返回汽车信息

  @Override

  public String toString() {

  return "[Logo]=" + logo + ",[Color]=" + color + ",[Price]=" + price;

  }

  }

  在上述Car汽车类中,我们定义了 3个成员变量和1个静态变量。一般情况下,像这种类的成员变量,访问修饰符都是private私有的,表示该成员变量只是被该类自己访问,不能被外界访问。如果我们想要被外界访问,可以对外提供一些该属性对应的公开方法,如setXXX和getXXX(),而不是被其他类来直接访问该属性。

  另外我们还定义了一个公开静态的字符串常量。一般情况下,一个常量都是可以被其他类直接访问的,所以经常设置成公开的和静态的,这样方便直接调用。而常量的值一旦被设置之后,就不能在运行时被修改了,这也就是常量的含义:保持常态不变!


声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

java的输入语句—— Scanner类

2023-05-04

java数据库操作常识事务的四大特性

2023-05-04

DML数据操作之增加或删除数据

2023-05-04

最新文章NEW

socket是什么?有什么作用?

2023-05-04

Java常量定义是什么

2023-04-28

一分钟带你学多线程

2023-04-28

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>