Java入门笔记(第三章 类与对象 1 )
发布日期:2021-05-07 23:25:04 浏览次数:20 分类:精选文章

本文共 2824 字,大约阅读时间需要 9 分钟。

类与对象

第一节 面向对象的最初理解

1. 封装

  1. 面对对象变成核心思想之一就是将数据对数据的操作封装在一起
  2. 例如:机动车类就是从具体的实例中抽取共同的属性和功能形成的一个概念,即一个对象

2.封装

子类可以继承父类的属性和功能,即继承了父类所具有的数据和对数据的操作,同时又可以增添子类独有的数据和对数据的操作。

3.多态

有两种意义的多态。

一种是操作名称的多态,即有多个操作具有相同的名字,但这些操作所接收的参数类型必须不同。
另一种多态是和继承有关的多态,是指同一个操作被不同类型对象调用时可能产生不同的行为。

第二节 类的封装

1. 步骤:

  1. 创建对象
    用类(数据类型)声明的变量就称之为一个对象,可以先声明再创建该类对象。
  2. 使用变量(属性)
    格式:对象.变量;
  3. 调用方法
    格式为:对象.方法;
class TestCircle{   ......  Circle circle;  //声明对象  circle = new Circle();//创建对象  circle.radius=100;  //给变量赋值  double area=circle.getArea();   //类:class Circle {             //本行为“类声明”   double radius;       //圆的半径属性   double getArea() {      //计算面积的方法      double area=3.14*radius*radius;      return area;   }}                      //最外层大括号之间为“类体”

2. 概念

抽象得到的数据(属性)和行为功能(方法相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成类,其中数据和方法都是类的成员

3.类的格式

类的定义语法格式如下:

[类的修饰符] class 类名 [extends 父类名] {            ……        //类体        }

1.类的修饰符:定义了类间的访问特性。

2.extends:表示所声明的类继承的父类。
若没有extends声明部分,表示所声明的类是从java的根类Object进行继承(默认情况)。
例:
public class Circle extends object{
……
}==
3.类体:声明类的成员,其中包括成员变量、成员方法和构造函数。

4.类的构成

1.成员变量(域)

一个类的数据属性由它的成员变量(域)定义。在类中声明一个域的形式为:
[成员变量修饰符] 类型 成员变量名;
成员变量修饰符包括public,private, protected,package(默认),staticfinal等。

2.方法

方法一般是对类中的数据成员进行操作。

如果类中的数据成员是private型的,则往往定义一个public的方法来设置数据成员的值或读取数据成员的值。

3.构造函数或构造方法

构造函数名和类名是一样的
构造函数一般用于初始化某个类的对象

在程序创建Cricle类的对象时,new运算符为该对象分配内存,并调用构造函数来初始化该对象,也就是通过调用Cricle类的构造函数,在构造函数中给对象的各成员变量赋初值。

第三节 类的作用域(包)

1.概述

  1. Java中,根据类的作用和相关性,将大量的类进行了分组(包),每组起一个名,称为包名。

  2. 同一个包中的类可以互相访问,而不同的包中的类能否互相访问要由类的作用域决定。

  3. 类的作用域修饰符告诉我们类之间的访问特性。

  4. 类的作用域修饰符有两个,要放在class关键字的前面。

2.包的基本使用

  1. 好处:文档分类,便于查找、适用目录解决文件同名冲突问题
  2. 声明 :
package cn.nefu.classandobject;   //声明包public class ICEC{       //……    public String toString(){          //……    }}

注意:

  1. 如果有包的声明,一定作为Java源代码的第一条语句
  2. 使用package声明包,以分号结尾
  1. 包的命名规范
  • 包名由小写字母组成,不能以圆点开头或结尾
  • 包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名。如:域名javagroup.net
  • 包名后续部分以不同机构内部的规范不同而不同

package net.javagroup.research.powerproject;

其中research是部门名,powerproject是项目名

  1. 创建好的包的储存格式
    创建包cn.nefu.classandobject ,即创建了目录结构:cn\nefu\classandobject
  2. 使用不同包的类
    需要使用import关键字导入这个类
    语法:
import 包名.类名;
import java.util.*;      //导入java.util包中所有类,这是一个系统包,*的意思是包中所有类import cn.nefu.classandobject.ICEC;    //导入指定包中指定类,指定ICEC类
  1. 一些注意事项
  • package(包作用域):一个具有包作用域的类只是在封装它的包中是可见(可访问)的。
    如果一个类声明的前面没有public关键字,则此类默认为包作用域。
  • public(公共作用域):一个具有公共作用域的类在封装它的包外面是可见的;

第三节 成员访问控制说明

1.说明

成员访问控制是用来控制当前类中的成员是否可以在其它类中被访问。

在这里插入图片描述
说明:public的成员组成了类的公共对外接口。

2.实例

在这里插入图片描述

在这里插入图片描述

第四节 成员方法的使用

1.说明

在java中所有的方法都被封装在类中,须通过类或对象调用方可使用,不能单独使用。方法的方法体中包含了实现这个方法具体功能的代码。

语法:

[修饰符] 返回类型 方法名([形式参数表])    {          ……  //方法体    }
  • 返回类型:一个方法必须声明其返回类型,如果无返回值,则必须声明其返回类型为void。

  • 方法可以通过return语句返回,并将返回值紧跟return语句之后。

  • 一个方法可以返回简单数据类型或任何引用类型的值,可以返回任何类的对象。

  • 方法的形式参数表指明每个参数的名字和类型,各参数之间用逗号分开。

  • 在方法体中,可以直接用这些参数名来引用参数的值。

  • 方法体中声明的变量,只在方法内使用,即它们是该方法中的局部变量。

  • 如果方法声明的局部变量与封装该方法的类所声明的一个成员变量(实例变量)同名,则在该方法的作用域中,局部变量屏蔽实例变量。

  • 若要在该方法中访问被屏蔽的实例变量,可在其名称前加上关键字this和点运算符( .)。

    形式为:this.变量名;
    在这里插入图片描述

上一篇:Java入门笔记(第三章 类与对象 2)
下一篇:算法设计与分析锐格实验(递归与分治算法)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年04月15日 04时12分44秒