面向对象的核心基础

================ 面向对象的核心基础 ====================
注意:
标识符
    1、定义必须有意义
    2、以字母,下划线,$符号开头,其他内容不能包含特征符号
    3、类名首字母必须大写,方法名和属性名首字母必须小写,使用驼峰命名方式
    4、常量所有字符都必须大写,如果多个单词之间使用下划线分割

一、什么是对象
       现实:具有明确定义的行为和特征的一类事物
       程序: 堆内存中分配内容空间
       具体类的实例。
二、什么类
类: 具体相同行为和特征的抽象
类是对象的模板
类的定义:
public 所有对象都可以访问
protected 同一个包或者子类的对象可以访问
default(省略) 同一个包的对象可以访问
private 只能本类才能访问
final 不能被其他类继承(派生)
abstract abstract关键字修饰的类是抽象类
---------------------------------------
抽象类和类区别:
不同点:
1>不能被实例化。
2>可以定义抽象的声明、抽象方法。
相同点:
1> 都有构造函数
2> 都可以定义实现的方法
----------------------------------------
static 静态类[一般定义内部类]
<访问修饰符> class 类名 {
// 构造函数/构造器
// (★)一个类都有一个默认无参的构造函数
// (★)一旦显示定义构造函数,都会把类中默认的构造函数覆盖掉
// 作用: 初始化类中成员变量/成员属性
调用对应构造函数实例对象
// 定义:构造函数的名称和类名相同
构造函数重载:构造函数中参数个数和类型不同可以构成构造函数的重载

// 属性 - > 特征
static 属性属于类本身
在内存中是唯一存在
调用方式 类名.属性名
<访问修饰符> 属性类型(基本/引用) 属性名称;
// 封装
// 1、使用private修饰类中属性
// 2、提供属性对应访问器(getter,setter)
对象的属性赋值或者获取操作进行控制

// 方法 - > 行为
方法修饰符:
static 使用static关键字修饰的方法,属性属于类本身,而不属于类的实例,调用:

类名.静态方法名称(....);
final 使用final关键字修饰的方法,不能被子类重写/覆写
abstract 使用abstract修饰方法,必须定义在抽象类或者接口中,并且没有具体实现
参数列表:
参数数据类型
值类型: 值传递,不能改变本身值
引用类型 引用传递,可以改变对象中成员属性的值
参数类型:
实参: 在调用方法的时候出现,它是一个赋值的变量或者常量
形参: 定义方法是定义参数名称,没有实际值
<访问修饰符> <方法修饰符> 返回值类型(void/基本数据/引用) 方法名称(参数列表)

{
// 方法体
// 方法实现逻辑
// 注意:
// 如果返回值不为void,那么返回结果格式:
// return 返回值类必须是返回类型兼容的数据类型
}

// 在同一个类中存在方法重载
// 重载:在同一类中方法名称相同方法参数类型和个数不同构成方法重载,与返回值类

型无关
}
三、类实例化
1> 通过类定义的构造函数
类名 对象名 = new 类名();
// 通过属性对应访问器操作属性
对象名.setXxxx(值) // 给属性设置值
对象名.getXxxx() // 获取对应属性的值
// 调用类中实例方法,不是静态方法(类方法)
对象名.方法名();

四、面向对象的特征
★封装:隐藏对象中具体方法实现细节
表现:属性私有化
提供对应属性访问器
提供外部访问方法,让其他方法私有化
★继承:子类继承父类中非私有的成员属性和方法
1>Java中只能是单继承,可以有多重继承 ->(间接继承)
2>实现子类的时候,先调用父类对应的构造函数初始父类,在初始化子类中成员变量
3>子类可以重写继承父类中的方法,方法访问修饰符>=父类访问修饰符
4>当前子类中定义与父类重名属性时,子类不能继承父类中相同名称属性
super: 代表父类引用
1> 在子类中使用父类构造初始化父类中成员变量的时候,必须放在子类构造函数的

第一行
2> super(参数列表) 调用父类中对应参数构造函数初始化子类对象
3> 可以同super.方法(....) 调用被子类重写的方法
this: 当前调用对象的引用[谁调用指向谁]
1> this(....) 调用自己对应参数列表的构造函数初始化参数更多的构造函数
2> 本来调用自己构造函数初始化,this() 必须紧跟在super()后面
public A(int a, float b) {
super();
this(a); // 调用其它构造函数初始化成员属性
this.b = b;
}
public A(int a) {
this.a = a;
}
★多态:一个对象的行为多种表现形态
表现形式:
重写
重载
★抽象:在类定义的时候使用abstract关键字修饰类

★接口:限制实现类中必须拥有方法
在接口定义变量都是公共的静态的常量
接口中定义方法声明默认都是public abstract

特点:
没有构造函数
没有具体方法
只能被类实现<特例: 抽象类实现接口的时候可以不实现接口抽象的声明>
接口可以继承接口,不能实现接口

时间: 2024-10-13 13:20:16

面向对象的核心基础的相关文章

C#面向对象的核心概念

一.面向对象的核心概念 (一)抽象--面向对象的根基 讲到抽象,不得不涉及到现代科学技术的基础--数学. 数学是一门抽象的科学,面对着纷繁复杂的世间万物,数学不理会各种事物的独特特性,而只抽取它们在数量上的特性,深刻揭示了"世间万物"在数量上表现出的共同规律,抽象正是数学的本质特征. 数学的一个分支--离散数学是计算机科学的根基之一,因此,计算机科学从诞生之日起,就与数学有着密不可分的联系,抽象思维也是计算机科学的主要思维方法之一. 在使用面向对象的方法设计一个软件系统时,首先就要区分

面向对象的核心概念

1.面向对象的核心概念 从理论上说,面向对象技术拥有四大基本特性. (1)封装 这是一种隐藏信息的特征.封装这一特性不仅大大提高了代码的易用性,而且还使得类的开发者可以方便的更换新的算法,这种变化不会影响使用类的外部代码.可以用以下公式展示类的封装特性: 封装的类=数据+对此数据所进行的操作(即算法) 通俗的说,封装就是:包起外界不必需要知道的东西,只向外界展露可供展示的东西. 在面向对象理论中,封装这个概念拥有更为宽广的含义.小到一个简单的数据结构,大到一个完整的软件子系统,静态的如某软件系统

(转)面向对象最核心的机制——动态绑定(多态)

一.面向对象最核心的机制——动态绑定,也叫多态 1.1.通过下面的例子理解动态绑定,即多态 1 package javastudy.summary; 2 3 class Animal { 4 /** 5 * 声明一个私有的成员变量name. 6 */ 7 private String name; 8 9 /** 10 * 在Animal类自定义的构造方法 11 * @param name 12 */ 13 Animal(String name) { 14 this.name = name; 15

001-C#1所搭建的核心基础

今天我们就要说两个东西:委托与值/引用类型. 1委托. 因为在unity中我们还是用的很少,所以这个委托我就一直不是很明白,所以今天就来说说这个委托到底是什么东西.我其实在unity中用的形式一般是这个样子的. btn.OnClick.AddListener(()=>{Debug.Log("Hello World")});这个形式是一个Lambda形式,但是在实际事情下还是用的很少,Unity有一点还是不好的,将大部分功能都封装给一个类,我们只需要调用API就行了,但是我们并不知

Android核心基础第五天

一.学习目标及要求 课程目标 课程内容(必须讲的内容,就是讲课的知识点的顺序) * 掌握Activity 配置 * 掌握 Intent 显示意图 * 掌握 Intent 隐式意图 * 掌握两种意图的使用场景 * 掌握 activity 开启的数据传递 * 掌握activity的生命周期 * 掌握横竖屏切换的生命周期 * 掌握不同android版本 生命周期的细微差别 * 掌握开启activity获取返回值 * 掌握请求码 结果码的作用 * 掌握程序入口activity配置参数 * 掌握显示意图 

【Windows】Windows Server 2008 R2:核心基础架构

核心基础架构 Windows Server提供了核心基础架构服务以支持网络的运行.Windows Server技术已经成熟了,其中的角色和功能也同样成熟了.Windows Server 2008 R2继续改进了核心基础架构服务,这些服务一直都是Windows Server的一部分,它们为我们的业务提供了一个稳固的基础.点击以下核心基础架构角色以了解更多: Active Directory(AD) 应用程序和Web服务 可用性和可量测性 备份和恢复-Windows Server Backup Br

2.C#1语言核心基础

C#1语言核心基础 本部分将重点讨论C#1语言中的几个核心基础,他们包括:委托.类型系统.值/引用类型 1.委托 委托类似与函数指针,是要在恰当的时间执行的一系列操作,如果代码想要执行操作,但不知道操作细节,就可以使用委托. 简单委托的构成 要执行一个委托必须满足一下4个条件 申明委托类型 创建一个方法包含要执行的代码 创建一个委托实例 调用委托实例 合并和删除委托 上面的例子委托实例都只是一个操作,但是真实情况要稍微复杂一些,委托实例实际有一个操作列表与之关联,这就是调用列表. System.

Servlet---JavaWeb技术的核心基础,JavaWeb框架的基石(一)

初学JavaWeb开发,请远离各种框架,从Servlet开始. Web框架是开发者在使用某种语言编写Web应用服务端是关于架构的最佳实践.很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处理有关,形成一个基础,在开发别的应用项目的时候则可以从这个剥离出来的基础做起,让开发者更关注具体的业务问题,而不是Web的请求和响应的控制. 框架很多,但套路基本类似,帮你隐藏很多关于HTTP协议细节内容,专注功能开发. 但对于一个初学者来说,过早的接触框架往往事倍功半!同样一个问题,换一种

《跟老男孩学Linux运维之shell编程实战》-第二章 shell变量的核心基础

这篇文章主要讲解 shell变量的核心基础. 1.变量是什么? 变量是什么?可能有好多人不明白,简单地说,变量就是用一个固定的字符串(也可能是字符.数字等的组合)代替更多.更复杂的内容,该内容里可能还会包含变量.路径.字符串等其他的内容. 变量的赋值方式为:先写变量名称,紧接着是"="这个字符,最后是值,中间无任何空格(变量的内容一般要加双引号,以防止出错,特别是当值里的内容之间有空格时). 如何打印变量?通过echo命令加上$变量名 打印变量的值: 例如:定义变量和打印变量: [[e