java 面向组件_Java 面向对象
面向对象:
1, 面向过程的思想
准备去一个地方:
先买车, 挂牌, 开导航, 踩油门, 过黄河, 穿越珠穆朗玛峰...
2, 面向对象的思想
我开着车去, 车怎么去随便
所有去这个地方的信息, 全部封装在这个车里面, 我不了解这个车是怎么运行的, 我也不需要了解, 我只知道我能到达这个地方就行了
面向对象的基本思想是, 从现实世界中客观存在的事物出发, 来构造软件系统, 并在系统的构造中尽可能的运用人类的自然思维方式, 面向对象是目前人与计算机沟通最简单的语言思想
合适的方法出现在合适的类里面
3, 什么是类, 什么是对象?
举个栗子(什么是瓶子-->一类事物的抽象-->静态属性,动态属性)
举个栗子(人-->学生-->张三)
对象是类的一种实例化, 对象用"属性"和"方法"来对应描述事物所具有的"静态属性"和"动态属性"
类是用于描述同一类形的对象的一个抽象的概念, 类中定义了这一类对象应该具有的"静态属性"和"动态属性"
类可以看成是一类对象的模板, 对象可以看成该类的一个具体实例
什么是类
学生是类, 瓶子是类, 老师是类
什么是对象
这个学生是对象, 这个瓶子是对象, 这个老师是对象,
符合这类事物的特征的某一个东西, 叫对象
领导-->显示职工的姓名
职工:合适的方法出现在合适的类里(有图有真相)
静态属性:
姓名: 张三
年龄: 24
工资: 3000
动态属性:
显示姓名
显示年龄
修改姓名
领取工资
4, 类与类之间的关系
关联关系(最弱的一种关系)(有图有真相):
不好下一个定义, (A类中某个方法的参数是B类的某一个对象)
举个栗子(学生老师)
老师要讲课, 这是一个方法, 要传个参数进去, 参数是学生对象
*继承关系(避免多重继承)(有图有真相)
什么是一种什么
举个栗子(运动员-->球类运动员-->篮球运动员)
聚合关系(聚集, 组合)(有图有真相)
什么是什么的一部分
举个栗子(球队-->(王队长, 队员))
组合----人: 头, 身体
聚集:构成这个类的这部分可以是这个类的, 也可以是另外一个类的,
组合:每一部分只属于一个类
*实现关系(有图有真相)
接口:只管定义方法, 怎么实现由子类去做
举个栗子(接口(开车的方法), A类可以实现, B类也可以实现)
5, java类的定义, 对象和引用
定义一个类
public class 类名{
成员变量
方法
}
类名 变量名 = new 类名();
变量名....
java: 万物皆对象, 处处皆需求
对象是对属性(成员变量, 静态属性)和方法(函数, 动态属性)的封装
java中提供的类, 程序员自己定义的类
为什么要使用面向对象的思想:
面向对象更容易达到一种境界:
Reusable(重用性), Extensibility(可扩展性)
面向组件(Component)--比对象更高层次的抽象
WebService
成员变量和局部变量的区别
成员变量的初始化(有图有真相)
成员变量可以是java中任意一种数据类型(基础数据类型和引用类型)
什么是引用类型 ?
成员变量可以初始化, 也可以不初始化(java默认初始化)
成员变量的作用范围-->整个类
类和对象的关系
C c1 = new C();
C c2 = new C();// c1, c2在这里是局部变量
7, 构造函数(构造方法)
在使用 new 来创建一个对象的时候就是调用的这个类的一个构造方法(构造函数), 构造方法名与类同名, 并且没有返回值(没有返回值也不要写void)
空参的构造函数和有参数的构造函数
注释, 命名规则!!!!!!!!!!
继承中的构造函数:
--子类的构造方法必须调用父类的构造方法
--super(), 调用父类的构造方法, this()调用本类中另外的构造方法
9, 关键字this, static, package和import语句
this:(this表示当前对象的引用)
--在类的方法定义中使用this关键字代表使用该方法的对象的引用
--当必须指出当前使用方法的对象是谁时要使用this
--有时this可以处理方法中成员变量和参数重名的情况
--this可以看作是一个变量, 它的值是当前对象的引用
static(不在堆里面也不在栈里面, 在数据区(data seg)):
--类名直接 . 出来的变量是静态变量, 每个类里面的静态变量只有一份, 是公用的(赋值后每个实例化的对象都可使用)
--静态方法中不可访问非静态成员
--静态变量和静态方法不需要实例化
package:
便于管理大型软件系统中数目众多的类, 解决类名重名的现象
10, 访问控制, 权限修饰符(public private default protected)
puclic class 类名 {
private 类型 属性1;
private 类型 属性2;
set, get
}
11, 面向对象的三大特性: 封装, 继承, 多态
封装(...)
继承:
子类拥有父类的属性和方法
多态((执行期间)动态绑定, 池绑定)(有图有真相):
重载(overload):
方法名相同, 只有参数类型不同或者参数个数不同, 返回值不同是不能构成重载的
重写(overwrite / override):
将父类的方法重新定义
--在子类中可以根据需要从父类中集成来的方法进行重写
--重写方法必须和被重写的方法具有相同的方法名, 参数列表和返回类型
--重写方法不能使用比被重写方法更严格的访问权限
toString方法的重写
equals方法的重写
12,super, final关键字
super: 指向父类的引用
final的变量值不能改变
final的方法不能被重写
final的类不能被继承
13, 对象转型(casting)
--父类的引用可以指向其子类的对象
--父类的引用不可以访问其子类对象新增的成员(包括属性和方法), 如果硬要访问-->强转
--可以使用instanceof关键字来判断一下这个变量是不是这个类或者是这类的子类
14, 抽象类(方法)
--使用abstract关键字修饰的类(方法)
--含有抽象方法的类必须被声明为抽象类
--抽象类不能被实例化
--抽象方法只需要声明, 不需要被实现
抽象方法:
定义方法, 没有实现
15, 接口(一种特殊的抽象类, 所有的方法是一个抽象方法)
--语法定义:
public interface InterfaceTest{
}
一个类去实现一个接口, 使用implements关键字
public class test implements InterfaceTest{
}
--多个无关的类可以实现同一个接口
--一个类可以实现多个无关的接口
--与继承关系类似, 接口与实现类之间存在多态性
--接口中的属性默认为 public static final 也只能是public static final的
--接口中只能定义没有实现的方法, 默认为 public, 也只能是 public, 接口可以继承其他的接口并添加新的属性和方法(没有实现的)
其配图如下所示:
java 面向组件_Java 面向对象相关推荐
- java面向过程和面向对象
面向过程(Procedure Oriented):说的是功能的行为 面向对象(Object Oriented,简称OO):说的是功能的对象 面向过程理解: 当学习java的时候先了解java语言优良的 ...
- java面向对象语言_Java到底是不是一种纯面向对象语言?
英文原文:Why Java Is a Purely Object-Oriented Language Or Why Not Java是否确实是 "纯面向对象"?让我们深入到Java ...
- java 接口对象_Java面向对象之接口——interface
Java面向对象之接口--interface 什么是接口 一般计算机中的接口分为硬件接口和软件接口. 硬件接口:是指两个硬件设备之间的连接方式,既包括物理上的接口,还包括逻辑上的数据传送协议. 软件接 ...
- java清空字符串_java面向对象,垃圾回收机制
一.类的属性 属性用于定义该类或该类对象包含的数据或者说静态特征.属性作用范围是整个类体. 在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化. 二.UML图 三.类和对 ...
- java五大原则_Java面向对象的三大特征和五大原则
Java面向对象的三大特征 封装 封装(Encapsulation)是指属性私有化,根据需要提供setter和getter方法来访问属性.即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问 ...
- java gui 组件_Java GUI4:深入了解GUI组件
本期可能比较长.面板: 面板有两种,一种是JPanel,一种是JScrollPane. 两者的区别在于,一种可滚动,一种不可滚动. 文本框: 文本框有三种,一种JTextField,一种JTextAr ...
- java泰拉轴距_Java面向对象
Java面向对象 什么是对象 世界万物皆为对象,凡是能看得见摸得着的所以东西都叫对象.对象是由属性和行为组成,属性是对象所具有的特征,而行为是对象可以做的动作. >例如生活中常见的事物:汽车.汽 ...
- java 并发组件_Java 并发计数组件Striped64详解
作者: 一字马胡 转载标志 [2017-11-03] 更新日志 日期 更新内容 备注 2017-11-03 添加转载标志 持续更新 Java Striped64 Striped64是在java8中添加 ...
- java final对象_java面向对象基础_final详细介绍
一.final关键字 1.final修饰的成员变量,其实就是常量 public class Example01 { public final String userName="小李" ...
最新文章
- python-字符串数据类型内置方法
- PAT(甲级)2018年冬季考试 7-1 Google Recruitment
- IT职场中外企面试最爱提的问题TOP10
- python白名单验证-python脚本简单检测ip合法性并添加到白名单文件
- Infragistics NetAdvantage控件的使用:该关系不是此 DataView 指向的表的父关系
- 关于电脑周边配件的问题
- 【蓝桥杯单片机】Led+蜂鸣器+继电器
- iOS 初识CoreBluetooth
- netty如何知道连接已经关闭,socket心跳,双工?异步?
- 基于mint-ui的移动应用开发案例一(简介)
- android开机画面大集合,汇总各种Android 开机画面修改方法 第二屏
- 【测试工具】xenu检查网站死链接工具
- 润乾统计图超链接使用例子
- 'BMap' is not defined 解决方案,亲测有效
- 深圳内推 | 香港中文大学(深圳)路广利老师招聘NLP方向研究助理
- 全球分布式数据库:Google Spanner翻译
- 平面坐标系旋转和平移
- 写了一个编排预言LOL S12晋级流程图
- MATLAB中diary日志
- MySQL 23道经典面试吊打面试官
热门文章
- Webpack 源码学习系列(一)
- C# DataTable的Select()方法不支持 != 判断
- 使用jquery.qrcode生成二维码(转)
- Axure 6.5 RP下载,汉化
- catch and batch
- Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之06.JDBC PreparedStatement
- [转载] 什么时候应该使用 ==?什么时候应该使用 Equals?
- 聚集索引与非聚集索引的总结
- ajax-典型应用-验证用户名
- row_number() over()函数基本用法