面向对象编程基础

本文介绍了面向对象编程的基础概念,包括对象的组成、类的定义及其特性,如封装、继承和多态。类是对象的抽象,封装了对象的属性和行为。对象由属性和行为(方法)构成,类通过构造方法创建对象。此外,文章还讨论了局部变量、静态成员(静态变量和静态方法)以及this关键字的用途。
摘要由CSDN通过智能技术生成

面向对象编程基础

1.1面向对象概述

在程序开发初期大家使用的是结构化开发语言也就是面相过程,但随着市场需求剧增软件的规模也越来越大,结构化语言的弊端也暴露出来。
开发周期无休止地拖延,软件质量也越来越多。
为了更好的适应市场,有人就开始以另一种开发思想引入程序中,也就是面向对象的开发思想。
面向对象思想是人类最自然的一种思考方式,它将所有预处理的问题抽象为对象,同时了解这些对象具有哪一些相应的属性以及行为,
以解决这些对象面临的一些实际问题,面向对象设计实质上就是对现实世界的对象进行建模操作。或者说把现实世界的操作虚拟到程序中去。
 

1.2 对象

对象,是一个抽象概念,英文称作为“Object”,表示任意存在的事物。通俗的来说世间万物皆对象!现实世界中肉眼可见的一种事物都是对象,对象是事物存在的实体,例如:人、手机、电脑。为了大家能简单的理解,只要在现实世界中看得到的实物都是一个对象。

1.2.1 对象的组成

一个实体(对象)可以划分两个部分,一个是描述外观和功能。那么在程序里关于实体(对象)描述外观的称为“属性”;实体(对象)的功能称这为“行为”或“方法”,也就是实体(对象)执行的动作。例如:人的性别是描述这个实体(对象)的,人能行走也能吃饭和学习是执行的动作。

实体(对象)由属性和行为组成,也就是实体(对象)的外观和功能。

1.3 类

类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为之类(简单的理解也可以是分类)。例如雁群就可看作是大雁类,因为每一只大雁都有相同的嘴、翅膀和爪等外观特性;同时每一只大雁也会睡觉、飞行、觅食等行为。所以就可以进行分类用程序角度来说的话这一群大雁就是一个大雁类。而大雁群中的每一只大雁都是大雁类的一个对象。

  
 
 
 
 
 

从上面二张流程图我们知道大雁群中的每一只大雁都具备一样的外观描述和行为(功能),那么我们就可以把这个实体(对象)称之为这个分类下的对象或者实体。

 

总结: 类可以理解为分类,是抽象的。而对象就是实体可以看得到模得着的。

1.3.1 OOP程序设计特点简单介绍

面向对象程序设计具有以下三个通用特点:

  • 封装性

  • 继承性

  • 多态性

a).封装

封装是面积对象编程的核心思想。也就是将对象的特征和行为封装起来,其载体就是类,类通常会隐藏其实现细节,这就是封装的思想。也就是说现实生活中的物品或者商品你只要付责使用就ok,其他的你可以不管。例如:使用手机打电话,只要能打通计话就行,具体内部怎么实现无须知道。

 

 

总结: 程序中采用封装的思想主要是保证了类内部数据结构的完整性和安全性,使用该类的用户不能轻易地直接操作此数据结构,只能操作类允许公开的数据。这样一来就避免了外部操作对内部数据的影响,提高了程序的可维护性。

b).继承

继承是每一门计算机语言不可少的机制,主要作用就是利用继承机制使新建的类可以建立在原有类的基础之上。在使用或者重写原有类的行为或者功能(程序里叫成员方法)以及访问原有类的特征(也就是类的成员变量)。我们可以称新类为子类 ,原有类为父类 。 举个例:如果类A是类B的父类,而类B是类C的父类,那么也可称类C是类A的子类,类C是从类A继承而来。同时在java中,关于类的继承是单一继承的,也就是说,一个子类只能拥有一个父类,一个父类可以有多个子类。总之而言,继承是在代码中是实现重复利用的重要手段,子类通过继承,复用父类特征和行为的同时又添加了子类特有的特征和行为。

 

c).多态

将父类对象应用于子类的特征就是多态。多态通俗理解就是多种形态,但每一个实体(对象)还是具备了父类的特征和行为。

 

 

2.类与对象

在上面我们认识类的时候就已经讲过,类是我们封装实体(对象)的外观特征(属性)和行为的载体,也就是说这个实体(对象)有哪一些外观描述和功能都可以在类里面进行封装描述。

2.1 类的声名

语法:

public class 类名称 {
           
  //类的主体....
}
 

注意:

  1. 如果类文件中只有一个类时,文件名必须与类名保持一致;
  2. 一个Java文件中只能有一个public类;
  3. 如果类文件中不止一个类,文件名必须与public类名一致;
  4. 如果文件中不止一个类,而且没有public类,文件名可与任一类名一致;

Java类名的命名规则:

  1. 类名应该以下划线(_)或字母开头,最好以字母开头;
  2. 第一个字母最好大写,如果类名由多个单词组成,则每个单词的首字母最好都大写
  3. 类名不能为Java中的关键字,例如:String、this、double、int等
  4. 类名不能包括任何嵌入的空格或点号以及除了下划线(_)和美元符号($)字符之外的特殊字符
2.2 成员变量

在Java中实体(对象)的特征(属性)也称为成员变量,成员变量的定义和普通变量定义是一样的。

数据类型 变量名称 [ = 值 ];

注意: 代码中的[ = 值]表示可选内容,也就是说定义变量时可以为其赋值也可以不赋值。

我们来举一个例子,例如鸟类 -> Bird类,成员变量对应于类对象属性。鸟都有翅膀、爪子、嘴巴、羽毛而这一些都是描述鸟的外观也就是对象的属性,所以Bird类应该有四个成员变量wing、claw、beak、feather。

 
//定义一个Bird鸟类
public class Bird {
          
  String wing;     //翅膀
  String claw;      //爪子
  String beak;      //嘴巴
  String feather;     //羽毛
}
 

分析: 上面代码使用关键字class定义类,类名是Bird,同时在Bird类中定义了4个成员变量,成员变量的类型可以设置Java中合法的数据类型,说到底成员变量和普通的变量是一样的,成员变量也可以设置初始值,也可以不设置初始值。不设置初始值就会有一个默认值。

数据类型 默认值 详细说明
float、double 0.0 浮点零
char '' 空格字符
boolean false 逻辑符
引用类型,如:String null 空值
int、byte、short、long 0 0值

上面是我们在定义类时使用的一些数据类型以及对应的默认值。

2.2 成员方法
2.2.1 成员方法的定义

成员方法对应类对象(实体)的行为或者功能,主要作用是用来定义类可执行的操作,行为或者功能就是一系列语句组成的代码块。

语法:

[权限修饰符] [返回值类型] 方法名 ([参数类型 参数名]){
               
  //方法体 -> 一系列代码
  return 返回值;
}
 

分析:

  1. 权限修改符可以是private、public、protected中的任意一个,也可以不写,主要用来控制方法(行为)的访问权限。后面一节会详细说明。
  2. 返回值类型用来指定方法(行为)返回数据的类型,可以是任何类型,如果方法不需要返回值则使用void关键字。
  3. 一个成员方法(行为)可以有参数也可以没有参数,同时参数是对象也可以是基本数据类型。
 
class Person {
            
  String name = "张三"; //成员变量也称之为类对象属性
  
  //定义一个方法作用是做一个自我介绍
  //不需要数据返回
  public void showInfo(){
            
    System.out.println(name); 
  }
}
//java文件名为Per.java
public class Per {
            
  public static void main(String[] args){
                
    Person p = new Person();
    p.showInfo(); //输出:张三
  }
}
 

注意:

方法的定义必须是在某个类的里面,也就是在类中;同时定义方法如果没有给定权限访问修饰符时,该方法的默认访问权限为缺省也就是只能在本类及同一个包中的类进行访问。

如果定义的方法有设置了返回值,则在方法里必须使用return关键字返回一个指定类型的数据,并且返回值类型要与方法返回值的类型一致。

 
 
public class Per{
             
  public static void main(String[] args){ 
  }
  
  public int 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值