Java面向对象编程基础
一、Java面向对象编程基础
1、什么是对象?Object 什么都是对象!
只要是客观存在的具体事物,都是对象(汽车、小强、事件、任务、按钮、字体)
2、为什么需要面向对象?
面向对象能够像分析现实生活问题的方式,来分析和实现计算机问题。
拉近了现实世界和计算机世界之间的距离。
Scanner sc = new Scanner(System.in);
sc.next(); sc.nextInt();
对象有什么特点?
对象可以反复使用的;每个对象功能尽可能单一(各司其职、各尽所能),String类专门用于处理字符串;
好处:提高代码的可复用性、易维护性;
软件工程理念:高内聚、低耦合;
高内聚:每个类(对象)功能尽可能完备,自给自足。
(可复用性)java.lang.String类
低耦合:对象之间的关系尽可能弱;(易维护性)
3、如何面向对象?Object Oriented OO
OOA:面向对象分析,问题空间。
OOD:面向对象设计,解空间。
OOP:面向对象编程,编程实现。
面向对象的关键:抽象
针对不同类型的对象,进行分析,找出共性。
数据抽象-属性
业务抽象-方法
1、将对象的共性进行抽取,抽象一种类型 class;
对象 -> 类——泛化
类是对象的抽象、模板、蓝图
package day06;
public class Animal{
//有什么?数据抽象——属性、成员变量(全局变量)
String name; //名称,
int age; //年龄
//会什么?业务抽象——方法
//吃 eat
//public void eat(String food){
System.out.printly(name + “eat” + food);
}
}
2、使用类来创建对象 new “特化” “实例化”
对象是类的一个具体事例(Instance)
package day06;
public class TestAnimal{
public static void main(String[] args){
Animal a1 = new Animal();
a1.mane = "小强”;
a1.age = 3;
a1.eat("巧克力");
}
}
4、类语法结构分析
语法:[]表示可选的部分
package 包名;
[修饰符] class 类名
[extends 父类] [implements 接口1,接口2,...]
{//类体
[属性、成员变量]
[构造方法]
[方法]
}
(1)属性 field域,对象中保存数据的区域

语法: Attribute属性
[修饰符] 数据类型 属性名 [=初始值];
规律:对象创建,开辟空间,属性有默认值(同数组元素默认值
1)数值类型: 0或0.0;
2)字符型char:‘\u0000’
3)布尔型boolean false
4)引用类型ref null reference引用
(2)方法 method
语法:
[修饰符] 返回值类型 方法名(参数表)
[throws 声明抛出的异常]
{ //方法体
返回值类型是void,无需返回任何结果
可以通过return;语句提前结束方法调用
返回值类型不是void,必须写return xxx;
xxx可以是:常量、变量、表达式、方法调用
}
方法的重载 Overload
class Person{
public void 吃饭(饭 f){
...
}
public void 吃面(面 m){
...
}
public void 吃药(药 y){
...
}
}
定义:(一般在一个类中)
方法名相同,参数表不同(类型、数量、顺序)
注意:返回值类型是否相同不作为重载的依据;
用途:便于程序员的使用,只需记忆少量的方法名,通过传入不同的参数,来区分不同方法。
class Person{
public void 吃饭(饭 f){
。。。
}
}
练习:设计一个类TestAdd 实现不同类型数据的和
5、构造方法 Constructor
也称为:构造函数、构造器、构造子、构造
class Animal{
String name;
public Animal(){
}
}
要点:
1)使用类名作为方法名;
2)没有返回值类型,连void都不能有;
3)用途:初始化属性;
4)调用时机:伴随着对象创建而调用,new;
new Animal();调用无参构造方法
5)构造方法也可以重载(方法名相同,参数表不同);
分析以下两行代码执行步骤细节:
Animal a1 = new Animal("加菲猫",3);
a1.eat(“意大利面”);
(1)JVM第一次认识某个类:类加载
JVM加载Animal.class文件,将类的信息读入Code区,中作为对象的模板,可以创建对象。
(2)Animal a1 在栈区分配变量a1;
(3)new 对象,在Heap堆区分配空间,创建对象;
属性提供默认值:name null,age 0;
(4)构造方法伴随对象创建而调用,执行有参构造;
初始化属性:name “加菲猫”,age 3;
(5)对象地址赋值给a1;
(6)平时说:调用a1对象的eat方法;
严格说:针对a1指向对象调用Code区中Animal类的eat方法,参数“意大利面。”
6、系统会为每个类提供公开的、无参的、空实现的、默认的构造方法。
public Animal(){}
一旦我们自定义构造方法,默认的就会消失;
要求:也自定义无参构造,避免丢失。
7、this关键字,表示当前对象(当前正在运行的对象)
this.成员:成员包括属性和方法;
主要用于this.属性;
目的:区分同名成员变量和局部变量;
this.name = name;
8、this():表示调用本类其他构造方法,可以传参数;
目的:复用其他构造方法的代码;
结论:构造方法只能在构造方法的第一行调用;
Animal():不对;this():才对。
练习:
1、设计一个员工类Emp
(1)属性:String name、int age、double salary;
(2)购置方法:两个无参、全参;重载;public Emp(){} 、name、age、salary;
(3)方法:工作;
public void work(String deptName)
打印name在deptName 上班
2、使用测试类TestEmp创建其对象并使用
Tom 23 7000.0 研发
Mary 21 8000.0 测试
面向对象编程:
找到合适的类,创建对象,提供数据属性,调用方法,得到结果。
找caiPiao类, cp1 25,5 create ds
复习:
面向对象编程基础:
一、什么是对象?什么都是
二、为什么需要面向对象?
拉近了现实世界和计算机世界的距离;能够以分析现实生活问题的方式来分析和实现计算机问题。
类、对象的特点:
1)可复用;
2)对象功能尽可能单一(各司其职、各尽所能)
软件工程理念:高内聚、低耦合;
高内聚:每个对象功能完备(自给自足)
CaiPiao类 功能:就是生产彩票数据
cp1.create = new CaiPiao(25,5);
int[] ds = cp1.create();
3)如何面向对象?OO Object Oriented
OOA 分析 问题空间
OOD 设计 解空间
OOP 编程 实现、使用
面向对象的关键:抽象(类)、
(1)将同类对象进行抽象,形成一个类class;
数据抽象:属性;
业务抽象:方法;
类是对象的抽象、模板、蓝图
对象是类的一个具体实例Instance
(2)使用类创建对象new“实例化”、“特化”
属性:创建对象后,属性有默认值(规律同数组)
1)数组类型:0或者0.0
2)字符型char:‘\u0000’
3)布尔型boolean:false
4)引用型:null
三、方法的重载:
Arrays.sort(ds);int【】
Arrays.sort(cs);char【】
四、构造方法;
String s1 = Arrays.toString(ds1);
将ds1数组数据生成如下String对象返回【1,3,5,。。。7,9】
Java面向对象编程基础的更多相关文章
- JAVA学习(五):Java面向对象编程基础
Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它採用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目 ...
- [Java入门笔记] 面向对象编程基础(二):方法详解
什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...
- 面向对象编程基础(java)
面向对象编程基础 1.1 面向对象概述 在程序开发初期,大家使用的是结构化开发语言,也就是面向过程(opp),但随着市场需求剧增,软件的规模也越来越大,结构化语言的弊端也暴露出来. 开发周期无休止的拖 ...
- 第二章 Matlab面向对象编程基础
DeepLab是一款基于Matlab面向对象编程的深度学习工具箱,所以了解Matlab面向对象编程的特点是必要的.笔者在做Matlab面向对象编程的时候发现无论是互联网上还是书店里卖的各式Matlab ...
- java 面向对象编程。。。。
经过一周的学习(java),总结了许多,对java的理解,java的类型,运用,安装,基础语法,变量,常量,表达式,语句 java从C语言中继承了大量语言特性.java面向对象编程的基本特征,包括继承 ...
- Matlab面向对象编程基础
DeepLab是一款基于Matlab面向对象编程的深度学习工具箱,所以了解Matlab面向对象编程的特点是必要的.笔者在做Matlab面向对象编程的时候发现无论是互联网上还是书店里卖的各式Matlab ...
- 大数据技术之_16_Scala学习_04_函数式编程-基础+面向对象编程-基础
第五章 函数式编程-基础5.1 函数式编程内容说明5.1.1 函数式编程内容5.1.2 函数式编程授课顺序5.2 函数式编程介绍5.2.1 几个概念的说明5.2.2 方法.函数.函数式编程和面向对象编 ...
- JAVA面向对象编程课程设计——web版斗地主
一.团队课程设计博客链接 JAVA面向对象编程课程设计--网络版单机斗地主 二.个人负责模块或任务说明 实体类的设计 斗地主规则的实现 人机自动出牌的算法 实现数据库的DAO模式 三.自己的代码提交记 ...
- Objective-C 基础教程第三章,面向对象编程基础知
目录 Objective-C 基础教程第三章,面向对象编程基础知 0x00 前言 0x01 间接(indirection) 0x02 面向对象编程中使用间接 面向过程编程 面向对象编程 0x03 OC ...
随机推荐
- LINUX 笔记之常用打包压缩命令
1.将所有.jpg文件打成一个名为all.tar的包 tar -cf all.tar *.gif 2.将所有.gif文件追加到all.tar tar -rf all.tar *.gif 3.更新原来t ...
- 学习SVG 重点汇总
什么是SVG? Δ SVG 指可伸缩矢量图形 (Scalable Vector Graphics) Δ SVG 用来定义用于网络的基于矢量的图形 Δ SVG使用XML格式来定义图形 Δ SVG ...
- python + selenium 自动化测试框架
分享一个网站自动化测试框架 结构如下: test_project|--logs|---pages |---register_page.py| |---base_page.py|---test ...
- C++函数返回值(02)
对象作为返回值 编译器会将函数栈中的返回值数据拷贝到返回栈中 指针作为返回值 函数的返回值可以是存储某种类型数据的内存地址,称这种函数为指针函数.它们的一般定义形式如下: 类型标识符 *函数名(参数 ...
- PHP四种基本排序算法
PHP的四种基本排序算法为:冒泡排序.插入排序.选择排序和快速排序. 下面是我整理出来的算法代码: 1. 冒泡排序: 思路:对数组进行多轮冒泡,每一轮对数组中的元素两两比较,调整位置,冒出一个最大的数 ...
- .13-Vue源码之patch(3)(终于完事)
怎么感觉遥遥无期了呀~这个源码,跑不完了. 这个系列写的不好,仅作为一个记录,善始善终,反正也没人看,写着玩吧! 接着上一节的cbs,这个对象在初始化应该只会调用create模块数组方法,简单回顾一下 ...
- 将本地web服务映射到公网访问
本文始发于我的个人博客,如需转载请注明出处. 为了更好的阅读体验,可以直接进去我的个人博客看. 项目部署 之前在学习前端的时候项目都只是在本地测试,永远的都是类似 http://localhost/x ...
- 爬取朋友圈,Get年度关键词
人生苦短,我用Python && C#. 1.引言 最近初学Python,写爬虫上瘾.爬了豆瓣练手,又爬了公司的论坛生成词云分析年度关键词.最近琢磨着2017又仅剩两月了,我的年度关键 ...
- git使用教程之git分支
1 分支简介 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流. 你将经历如下步骤: 开发某个网站. 为实现某个新的需求,创建一个分支. 在这个分支上开展工作. 正在此 ...
- npminstall无法安装node-sass
cannot download "https://hithub.com/sass/node-sass/releases/download/v3.13.0/win32-x64-46_bindi ...