06.【Java】面向对象编程基础

一、类与对象概述:

在这里插入图片描述

1、对象

对象:对象是一个抽象概念,英文称作“Object”,表示任意存在的事物,是类的一个实例,有状态和行为。例如,一个人就是一个对象,他的状态有:性别、年龄、国籍等;行为有:走路、跑步、吃饭等。状态描述的是对象的“静态”属性,行为描述的对象的“动态”属性。

2、类

类:类是封装对象的属性和行为的载体,可以反过来说具有相同属性和行为的一些对象实体被称为类。类可以看成是创建 Java 对象的模板,它描述一类对象的行为和状态。

在Java语言中,类包括对象的属性和方法。类中对象的属性是以成员变量的形式定义的,对象的行为是以方法的形式定义的。

3、类与对象的特点:

(1)封装

在面向对象程序设计方法中,封装(英语:Encapsulation)是指类将对象的属性和行为隐藏起来,对客户隐藏其实现细节的思想。封装可以被认为是一个程序的保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。如果想要访问该类的代码和数据,必须通过严格的接口进行。合适的封装可以可以增强代码的易维护性和安全性。

(2)继承

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

子类和父类的继承关系可以这样理解:四边形(F)包括平行四边形、矩形、菱形、梯形(S)。其中S继承了F的一些属性(包括有四条边,内角和为360度等),同时又新添加了一些自己的特有属性和方法(比如平行四边形两对边平行等)。我们可以说平行四边形是四边形,但是不能说四边形是平行四边形。同理,Java中我们可以说子类的实例都是父类的实例,但是不能说父类的实例是字类的实例。

继承实际上是实现重复利用的重要手段,子通过继承,复用父类属性和行为的同时又添加字类特有的属性和行为。提高代码编写效率的同时,保持程序的可延展性,以满足解决各类不同实际问题的需求。

(3)多态

将父类对象应用与子类的特征就是多态,多态是同一个行为具有多个不同表现形式或形态的能力。即同一个事件发生在不同的对象上会产生不同的结果。

我们可以将多态理解为通过同一个接口,使用不同的实例而执行不同操作:比如同样是按下F1查看帮助文档这个事件,在windows对象下弹出的是window的帮助和支持文档,在word文档对象下弹出的就是doc的帮助和支持。操作相同,面向对象不用,结果也不同。在继承了父类特征的同时,子类也具备自己的特性,并且可以表现出不同的能力,这就是多态化的结构。

二、类与对象核心知识

Java中,类是封装对象的属性和行为的载体,定义类使用关键字class:

class 类名称{
    

//类的成员变量 

//类的成员方法 

} 

Java中,对象的属性以成员变量的形式存在,对象的方法以成员方法的形式存在。

1、成员变量

成员变量:类中,Java对象的属性也称为成员变量是,其定义方法与普通变量定义方法相同:

数据类型 变量名称 [=] 

在类中,成员变量在创建对象的时候实例化,这样成员变量可以被类中成员方法、构造方法和特定类的语句块访问。举个例子:

public class Cat{
    

String breed; //品种 

int age; //年龄 

String color; // 颜色 

void hungry(){
    

} 

void sleeping(){
    

} 

} 
  • 定义类的关键字:class

  • 类的名称:Cat

  • 成员变量:breed、age

  • 成员方法:hungry、sleeping

2、成员方法

在Java中成员方法对应与类对象的行为,它主要用来定义可执行的操作,是包含一系列语句的代码块:

(1)成员方法的定义

成员方法定义格式:

[权限修饰符][返回值类型] 方法名 ([参数类型 参数名])[throw 异常类型]{
    

...//方法体 

return 返回值; 

} 
  • 权限修饰符:用来控制放完权限,可以是private,public,protected中任意一个。

  • 返回值类型:用来制定方法返回数据的类型,可以是任意类型。

  • void:不需要有返回值的情况下,使用void关键字

  • return关键字:如果定义的方法有返回值,则必须使用return关键字返回一个制定类型的数据,并且返回值类型要与方法返回值的类型一致。

  • 一个方法可以有参数,也可以没有参数,参数可以是对象,也可以是基本数据类型的变量。

public void showGoods(){
    

System.out.println("库存商品名称:"); 

System.out.println(FullName); 

} 
public int showGoods(){
    

System.out.println("库存商品名称:"); 

//下行代码如果删除则会报错要求必须使用return返回制定类型的结果 

return 1; 

} 

(2)成员方法的参数

调用方法时,可以给该方法传递一个或多个值,传给方法的值叫做实参,在犯法内部,接收实参的变量叫做形参,形参的生命语法与变量的声明语法一致。形参只在方法内部有效。

Java中方法的参数有3种,分别叫做值参数、引用参数和不定长参数。

值参数

值参数表明形参与实参之间按值传递,当使用值参数的方法被调用时,编译器会为形参分配存储单元,然后将对应的实参的值赋值到形参中,由于是值类型的传递方式,所以在方法中对值类型的形参的修改并不会影响实参。

实例1:计算箱子里图书的总数

书架上有30本书,箱子里有40本书,把书架上的书全部放进箱子之后, 使用带参数的成员方法计算箱子里书的总数:

/* 

书架上有30本书,箱子里有40本书,把书架上的书全部放进箱子之后, 

使用带参数的成员方法计算箱子里书的总数: 

*/ 

public class Book {
    

public static void main(String[] args) {
    

// TODO Auto-generated method stub 

//创建书类对象 

Book book = new Book(); 

//初始化书架上的本输(实参) 

int shelf = 30; 

//初始化箱子中的本输(实参) 

int box = 40; 

//把书架子上的书全部放进箱子之后,输出箱子里书的总数 

System.out.println("把书架子上的书全部放进箱子之后,"+ 

"输出箱子里书的总数:"+ 

book.add(shelf,box) + 

"本书。\n明细如下:书架上"+shelf + 

"本书,箱子里原有" +box+"本书。"); 

System.out.println("\n再打印一次实参:"); 

System.out.println("把书架子上的书全部放进箱子之后," 

+"输出箱子里书的总数:"+book.add(shelf,box) + 

"本书。\n明细如下:书架上"+shelf + 

"本书,箱子里原有" +box+"本书。"); 

} 

//把书架、箱子里的书本求和(形参) 

//没有使用void关键字,要求必须返回制定类型(int)的结果的值 

private int add(int shelf,int box
  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值