Java语言程序设计

本文深入探讨了面向对象编程的核心概念,包括面向过程与面向对象的区别。面向对象注重对象和类的使用,强调封装、继承和多态特性。封装确保数据隐藏和模块化,继承允许子类继承父类属性和方法,多态则表现为对象多态性和方法多态性,实现了代码的灵活性和重用性。通过实例解析了如何在Java中实现这些概念。
摘要由CSDN通过智能技术生成

面向过程与面向对象

二者都是一种思想,面向对象是相对于面向过程而言的。面向过程强调的是功能行为,以函数为最小单位,考虑怎么做。 面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。例如:事件把大象装进冰箱。  面向过程:通过函数 打开冰箱门--找到大象,拿起大象--来到冰箱前--抬起大象--放进冰箱 一步一步把这个过程的细节完成。  面向对象:人这个对象里有属性和打开冰箱抬起大象的行为,大象这个对象,有其属性和行为,通过调用这些对象把这个事件完成。

面向对象编程

  1. 面向对象编程的三大特性:封装、继承、多态。
  2. 类与对象:相似对象的集合和抽象就是类,类的一个实例是对象。、
  3. 类:对一类事物的描述,是抽象的、概念上的。
  4. 对象:定义一个类后,类不能直接调用,需要把类实例化为一个对象在对其进行调用等操作。对象是一个独立的单位,它具有自己的静态特征(属性)和动态特征(行为),(一个对象由一组变量(属性)和方法(行为)构成,通过变量描述其属性,通过方法描述其行为。)
  • 封装  (特点:模块化和数据隐藏)

 Java的封装性是利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能的隐藏内部的细节,只保留一些对外接口使之与外部发生联系。

  • 继承与多态

继承:Java的继承性是指子类对象拥有其父类的全部属性和方法。子类不仅可以继承父类的属性和方法,还可以添加新的属性和方法。(继承也是把类实例化为对象的体现)

多态的两种体现:

1、对象多态性,体现在父、子对象之间的转型上

(1)向上转型(Upcast)(自动转型):父类  父类对象=子类实例

  将子类对象赋值给父类对象,这样将子类对象自动转换为父类对象。这种转换方式是安全的。

public class Animal{
    void shout(){
        System.out.println("动物都会叫!");
    }
    public static void main(String [] args){
        Cat white=new Cat();
        Animal some = new Cat();//向上转型  把子类赋给父类
        some.shout();
    } 

}
class Cat extends animal{
    void shout(){
        System.out.println("喵喵喵!");
        Cat mi=new Animal();//向下转型  把父类赋给子类。
        mi.shout();
    }

}

(2)向下转型(Downcast)(强制转型):子类  子类对象=(子类)父类对象

  将父类对象赋值给子类对象。这种转换方式是非安全的。在特定背景下如果需要父类对象转换为子类对象,就必须使用强制类型转换。

2、方法多态性,体现在方法的重载和覆写上

  方法的重载是指同一个方法名称,根据其传入的参数类型、个数和顺序的不同,所调用的方法体也不同,即同一个方法名称在一个类中有不同的功能实现;

public class exp5 {
	final float PI=3.1415926f;
	public void getArea(float r) {
		float arae = PI*r*r;
		System.out.println("半径为"+r+"的圆的面积是:"+area);
	}
	public void getArea(float a,float b) {
		float area =a*b;
		System.out.println("长为"+a+"宽为"+b+"的矩形面积是:"+area);
	}
	public static void main(String[] args) {
		exp5 emo=new exp5();
		emo.getArea(20, 30);
		emo.getArea(7);
		

	}

}

  方法的覆写(重写)是指父类之中的一个方法名称,在不同的子类有不同的功能实现,而后依据实例化子类的不同,同一个方法,可以完成不同的功能

本书是Java语言的经典教材,多年来畅销不衰。本书全面整合了Java 8的特性,采用“基础优先,问题驱动”的教学方式,循序渐进地介绍了程序设计基础、解决问题的方法、面向对象程序设计、图形用户界面设计、异常处理、I/O和递归等内容。此外,本书还全面且深入地覆盖了一些高级主题,包括算法和数据结构、多线程、网络、国际化、高级GUI等内容。 本书中文版由《Java语言程序设计 基础篇》和《Java语言程序设计 进阶篇》组成。基础篇对应原书的第1~18章,进阶篇对应原书的第19~33章。为满足对Web设计有浓厚兴趣的同学,本版在配套网站上增加了第34~42章的内容,以提供更多的相关信息。 本书特点 基础篇介绍基础内容,进阶篇介绍高级内容,便于教师按需选择理想的教材。 全面整合了Java 8的特性,对全书的内容进行了修订和更新,以反映Java程序设计的全新技术发展。 对面向对象程序设计进行了深入论述,包含GUI程序设计的基础和扩展。 提供的大量示例中都包括了对问题求解的详细步骤,很多示例都是随着Java技术的引入不断地进行增强,这种循序渐进的讲解方式更易于学生学习。 用JavaFX取代了Swing,极大地简化了GUI编程,比Swing更易于学习。 更多有趣示例和练习,激发学生兴趣。在配套网站上还为教师提供了100多道的编程练习题。 作者简介
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值