Java面向对象和特征

面向对象:

概念:

面向对象是一种程序设计思想,计算机程序的设计实质上就是将现实中的一些事物的特征抽离出来描述成一些计算机事件的过程,这种抽象的过程中,我们把具体的事物封装成一个一个的整体进行描述,使被描述的对象具备一些系统性、整体性的的行为和特征,我们把这种设计思想称为面向对象。从现实世界中客观存在的事物出发, 来构造软件系统, 并在系统的构造中尽可能的运用人类的自然思维方式, 面向对象是目前人与计算机沟通最简单的语言思想。

面向对象的三种特征:

封装1.隐藏对象的属性和实现细节,仅对外提供公共访问方式

封装的原则:

1.将不需要对外提供的内容都隐藏起来

2.把实现细节隐藏,提供可以对其进行访问公共的方式

封装的方式

将某一功能、属性抽离出来,独立写成单独的方法或类

设置访问权限

1.设置访问权限可以限定该功能或属性可以被特定的访问者访问,保证了程序的安全性和功能的稳定性。

2.Java对类和类中成员都定义了特定的访问修饰符

类:public(公共的) 、default(默认的,不写就默认是它)

类中成员:public、protected、default(默认的)、private

/*

类的访问修饰符可以不写(默认的),也可以写public(公共的),一个java文件中只能有一个被public修饰的类,且被public修饰的类类名必须要跟文件名一致(包括大小写一致),否则编译会出错,为了方便阅读,类名的命名规范是单词的首字母大写,多个单词组成的类名每个单词的首字母都大写

*/

继承继承是从已有的类中派生出新的类,新的类能吸收已有类的数据

属性和行为,并能扩展新的功能,或者说将事物的共性的功能和属性抽

取出来定义成一个父类,让后来具有更多样化实现的子类继承父类。

继承的作用

1.父类具备的方法子类可以直接继承过来,不用重新书写,提高了代码的复用性

2.让类与类之间产生关系,有了关系才有多态的实现

3.Java中只支持单继承,不支持多继承,因为多继承存在安全隐患(当多个父类存在同个功能时,子类不确定要运行哪一个),Java支持多层继承,即父类还可以继承其他类,java用另一种机制解决单继承的局限性,即多实现

继承的特征

1.继承关系是传递的。若类C继承类B,类B继承类A(多层继承),则类C既有从类B那里继承下来的属性与方法,也有从类A那里继承下来的属性与方法,还可以有自己新定义的属性和方法。继承来的属性和方法尽管是隐式的,但仍是类C的属性和方法。继承是在一些比较一般的类的基础上构造、建立和扩充新类的最有效的手段。

2.继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系。

3.继承提供了软件复用功能。若类B继承类A,那么建立类B时只需要再描述与基类(类A)不同的少量特征(数据成员和成员方法)即可。这种做法能减小代码和数据的冗余度,大大增加程序的重用性。

4.继承通过增强一致性来减少模块间的接口和界面,大大增加了程序的易维护性。

5.提供多重继承机制。从理论上说,一个类可以是多个一般类的特殊类,它可以从多个一般类中继承属性与方法,这便是多重继承。Java出于安全性和可靠性的考虑,仅支持单重继承,而通过使用接口机制来实现多重继承。

 

//建一个A类
class A{
//成员变量 其中num是实参
int num=0;
//成员方法,其中 i 是型参
public A(int i){
//输入int型文件输出下面
System.out.println("aaaaaaaaaaaaaaaaaaa");
System.out.println("i= "+i);
//把输入的i赋值给成员变量num
num=i;
}
}
//B继承A
class B extends A{
int num=0;
//成员方法B.
public B(){
//继承类A的方法.因为B继承了A必然继承了A的特性.所以输入int值10令方法实现.
super(10);
System.out.println("bbbbbbbbbbbbbbbbbbbb");
//这里的num是类B的.
System.out.println("num= "+num);
//如果想显示类A的num则需要用下列的super.num.这里注意num在类A中需是成员变量才可以.
System.out.println("super.num= "+super.num);
}
}
//建立测试类C
public class C{
//main
public static void main(String aa[]){
//new 一个对象B()
new B();
}
}

多态

    定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
    两种不同的表现形式重载和重新

重载和重写

重载:重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数类型。方法重载就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义,调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法。方法名要一样,但是参数类型和个数可以不同。

重载的规则:

1、必须具有不同的参数列表;

2、可以有不责骂的返回类型,只要参数列表不同就可以了;

3、可以有不同的访问修饰符;

4、可以抛出不同的异常;

 

重写:若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。子类函数的访问修饰权限不能少于父类的。在JAVA语言中,java.lang.Object类是所有类最根本的基类(或者叫父类、超类),如果我们新定义的一个类没有明确地指定继承自哪个基类,那么JAVA就会默认为它是继承自Object类的。

重写方法的规则:

1、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。

2、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。

3、访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)

4、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。例如:

父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常。

重写与重载的区别在于:

重写多态性起作用,对调用被重载过的方法可以大大减少代码的输入量,同一个方法名只要往里面传递不同的参数就可以拥有不同的功能或返回值。

用好重写和重载可以设计一个结构清晰而简洁的类,可以说重写和重载在编写代码过程中的作用非同一般.

时间: 2024-10-21 03:59:58

Java面向对象和特征的相关文章

Java——面向对象的特征二:继承性

2.1面向对象的特征二:继承性 ①引入类继承最基本的作用是:代码重用. ②语法 [修饰符列表] class 子类名 extends 父类名{ 类体; } ③子类继承父类以后,父类中声明的属性.方法,子类就可以获取到. 明确:当父类中有私有的属性或方法时,子类同样可以获取得到,只是由于封装性的设计,使得子类不可以直接调用罢了,但是可以间接访问.子类除了通过继承,获取父类的结构之外,还可以定义自己的特有的成分.构造方法无法被子类继承. extends:子类是对父类功能的“扩展”,明确子类不是父类的子

03 Java面向对象基本特征

作者:thoughtInShare 出处:http://www.cnblogs.com/thoughtInShare 欢迎转载,也请保留这段声明.谢谢! 1,Java设计的基本思想是使用类,对象,继承,封装,消息等来进行程序设计; 2,Class定义=Field(状态数据)+method(行为) 3,面向对象的三个基本特征,封装(Encapsulation),继承(Inheritance),多态(Polymorphism); (1)封装,是指对象将实现的细节隐藏起来,通过行为方法来暴露该对象的功

Java面向对象三大特征

封装: 首先,属性可用来描述同一类事物的特征, 行为可描述一类事物可做的操作,封装就是要把属于同一类事物的共性(包括属性与行为)归到一个类中,以方便使用.比如人这个东东,可用下面的方式封装:人{ 年龄(属性一) 身高(属性二) 性别(属性三) 做事(行为之一) 走路(行为之二) 说话(行为之三)} 继承: 由于封装,使得有共同特征的一类事物的所有描述信息都被归于一类之中,但我们知道,这并不是万能的,有些事物有共性,但还存在区别,比如教师,简单封装起来如下:教师{ 年龄(属性一) 身高(属性二)

Java面向对象基本特征

1.封装性 一个对象和外界的联系应当通过一个统一的接口,应当公开的公开,应当隐藏的隐藏. 属性的封装:Java中类的属性的访问权限的默认值是default,要想隐藏该属性或方法,就可以加private(私有)修饰符,来限制只能够在类的内部进行访问.对于类中的私有属性,要对其给出一对方法(getXxx(),setXxx())访问私有属性,保证对私有属性的操作的安全性. 方法的封装:对于方法的封装,该公开的公开,该隐藏的隐藏.方法公开的是方法的声明(定义),即(只须知道参数和返回值就可以调用该方法)

简述Java面向对象三大特征:封装、继承、多态

封装: 把对象的全部属性和服务结合在一起,形成不可分割的独立单位: 尽可能隐藏内部细节.(数据隐藏.隐藏具体实现的细节) public.private.protected.default public:既可以跨类访问,也可以跨包(package)访问 private:只能被该类对象访问,子类不能访问,更不能跨包访问 protected:只能被该类本身和子类访问,即使子类不在包中也可以访问 default:即不添加任何修饰符,只允许同一个包进行访 继承: 1. is a 关系(eg:经理 is a

5.2-全栈Java笔记:面向对象的特征(一)继承 | 下

上节我们聊到「Java面向对象的特征:继承」这节我们继续聊一下继承的应用. Object类 Object类基本特性 Object类是所有Java类的根基类,也就意味着所有的JAVA对象都拥有Object类的属性和方法.如果在类的声明中未使用extends关键字指明其父类,则默认继承Object类. [示例1]Object类 public class Person { ... } //等价于: public class Person extends   Object { ... } toStrin

java面向对象特征

java面向对象的特征:封装,继承,抽象,多态: --1--.封装: 什么叫做封装? 封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口. 面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治.封装的对象,这些对象通过一个受保护的接口访问其他对象. 封装是一种信息隐藏技术,在java中通过关键字private实现封装.什么是封装?封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度.

第6篇-JAVA面向对象Ⅱ

第6篇-JAVA面向对象Ⅱ 每篇一句 :敢于向黑暗宣战的人,心中必定充满光明 初学心得: 面向对象 春暖花开 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-05| JAVA面向对象 Ⅱ] 1.JAVA面向对象三大特征 1.封装(Encapsulation); 2.继承(Inheritance); 3.多态(Polymorphism) 2.面向对象 之 封装 什么是封装? 封装就是隐藏实现细节,仅对外提供访问接口 封装的类型有:属性封装.方法封装.类封装.组件封装.模块化封装

14.面向对象三大特征

一.封装与隐藏 package com.atguigu.java; /* * 面向对象的特征一:封装与隐藏 3W:what? why? how? * 一.问题的引入: * 当我们创建一个类的对象以后,我们可以通过"对象.属性"的方式,对对象的属性进行赋值.这里,赋值操作要受到 * 属性的数据类型和存储范围的制约.除此之外,没有其他制约条件.但是,在实际问题中,我们往往需要给属性赋值 * 加入额外的限制条件.这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加.(比如:se