JavaSE (五)面向对象 -- 概述
个人博客网:https://wushaopei.github.io/ (你想要这里多有)
目录
一、面向对象的主线
1.java类及类的成员
2.面向对象的三大特性 : 封装性,继承性,多态性 (抽像性)
3.关键字 : this super final static ......
二、面向对象 VS 面向过程
面向过程 : 面向过程,强调的是功能行为
面向对象 : 面向对象,将功能封装进对象,强调具备了功能的对象。
1.案例 : 人把大象装冰箱
①面向过程 : 把冰箱门打开,搬起大象,塞进冰箱,关上冰箱门。
②面向对象
人{
打开(冰箱){
冰箱.开开();
}
关闭(冰箱){
冰箱.关门();
}
操作(大象){
大象.进入();
}
}
大象{
进入(){
}
}
冰箱{
开开(){
}
关门(){
}
}
三 、 java最基本的两个要素 - 类和对象
类 : 抽像的概念上的定义。(类似汽车设计图)
对象 : 具体的实实在在的个体。(类似造好的汽车)对象是由类派生(new)出来的
四 、Java类及类的成员
属性 = field = 成员变量
行为 = (成员)方法 = 函数
public class OOP {
}
五、面向对象的思想
1、类与对象


2、java类及类的成员



3、类的语法格式

六、面向对象思想落地实现的规则一
1.创建一个类,并提供相应的属性和方法
2.通过该类创建对象.(new 出来的)
3.给对象和属性进行赋值。对象名.属性名 = 属性值。 对象名.方法名()
public class PersonTest {
public static void main(String[] args) {
//创建一个人的对象
Person p = new Person(); //int a = 10;String s = "aaa"
//对象名.属性名 = 属性值; 给对象中的属性进行赋值
p.name = "强哥";
p.age = 16;
new String();
//获取属性中的值
String n = p.name;
System.out.println(n);
System.out.println(p.age);
//调用方法(对象名.方法名)
p.say();
p.run();
System.out.println("-------------创建另一个对象------------");
Person p2 = new Person();
p2.name = "小苍老师";
p2.age = 16;
p2.say();
p2.run();
Person p3 = new Person();
Person p4 = new Person();
p3.name = "小泷老师";
p4.name = "小波老师";
Person p5 = p3;
p5.name = "小泽老师";
System.out.println(p3.name);
System.out.println(p3.age);
System.out.println(p4.name);
System.out.println(p4.age);
System.out.println(p5.name);
System.out.println(p5.age);
System.out.println("----------------匿名对象-------------------");
//创建了一个匿名对象
//匿名对象往往我们作为实参进行传递
new Person().name = "aaa";
String n2 = new Person().name;
System.out.println(n2);
}
/*
* 讲了方法再说
*/
public void say(Person p){
}
}
//创建一个类
class Person{
//属性
String name; //成员变量
int age;
//方法
public void say(){
System.out.println(name + "说话了么么哒");
}
public void run(){
System.out.println(name + "跑起来了");
}
}
七、对象的创建与对象的内存解析


八、匿名对象
匿名对象:创建的对象没有赋值给对象的引用
使用场景:往往作为实参进行传递
public class PersonTest {
public static void main(String[] args) {
PersonTest pt = new PersonTest();
pt.show(new Person()); //将匿名对象作为一个实参进行传递
}
public void say(){
show(new Person());
}
public void show(Person p){
}
}
class Person{
}
九、案例实操
利用面向对象的编程方法,设计类Circle计算圆的面积。
package com.atguigu.exer2;
public class CircleTest {
public static void main(String[] args) {
Circle c = new Circle();
c.radius = 1; //给属性设值
//ctrl + shift + 回车 向上另起一行写代码
//shift + 回车 向下另起一行写代码
System.out.println(c.findArea());
}
}
/*
* 利用面向对象的编程方法,设计类Circle计算圆的面积。
*/
class Circle{
double radius; //半径
public double findArea(){
// return 3.14 * radius * radius;
return Math.PI * radius * radius;
}
/*
* 设计的不对 : 在做一些功能运算时,属性的值最好不要作为参数传进来。
*/
/*
public double findArea(double r){
return 3.14 * r * r;
}
public double findZhouChange(double r){
return 3.14 * 2 * r;
}
*/
}
JavaSE (五)面向对象 -- 概述的更多相关文章
- Java 面向对象概述原理: 多态、Object类,转型(8)
Java 面向对象概述原理: 多态.Object类,转型(8) http://docs.oracle.com/javase/tutorial/java/IandI/override.html Java ...
- Java之面向对象概述,类,构造方法,static,主方法,对象
一.面向对象概述 面向过程 "面向过程"(Procedure Oriented)是一种以过程为中心的编程思想.这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响 ...
- Python入门篇-面向对象概述
Python入门篇-面向对象概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.语言的分类 面向机器 抽象成机器指令,机器容易理解 代表:汇编语言 面向过程 做一件事情,排出个 ...
- 菜鸟笔记 -- Chapter 6.1 面向对象概述
6.1 面向对象概述 在程序开发的初期人们使用结构化开发语言,但是随着时间的流逝,软件的规模越来越庞大,结构化语言的弊端逐渐暴露出来,开发周期被无限制拖延,产品质量也不尽如人意,人们终于发现结构化语言 ...
- c# 第28节 面向对象概述
本节内容: 1:面向对象概述 2:类与对象的概念 1:面向对象概述 面向对象也称:OOP :object-oriented programming 面向对象的程序设计 面向过程:堆代码,从头开始,自己 ...
- Python进阶(十五)----面向对象之~继承(单继承,多继承MRO算法)
Python进阶(十五)----面向对象之~继承 一丶面向对象的三大特性:封装,继承,多态 二丶什么是继承 # 什么是继承 # b 继承 a ,b是a的子类 派生类 , a是b的超类 基类 父类 # ...
- JavaSE(一) 语言概述
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 目录 1 基础常识 2 Java语言版本迭代概述 3 Java语言应用的领域 4 Java语言的特点 5 ...
- 09_java之面向对象概述
01面向对象和面向过程的思想 * A: 面向过程与面向对象都是我们编程中,编写程序的一种思维方式 * a: 面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程. * b: ...
- Java面向对象概述
一.什么是面向对象? 现实世界中,随处可见的一种事物就是对象,对象是事物存在的实体,如人类.书桌.计算机.高楼大厦等.人类解决问题的方式总是将复杂的事物简单化,于是就会思考这些对象都是由哪些部分组成的 ...
随机推荐
- 教你配置windows上的windbg,linux上的lldb,打入clr内部这一篇就够了
一:背景 1. 讲故事 前几天公众号里有位兄弟看了几篇文章之后,也准备用windbg试试看,结果这一配就花了好几天,(づ╥﹏╥)づ,我想也有很多跃跃欲试的朋友在配置的时候肯定会遇到这样和那样的问题,所 ...
- Excel+Word:Jupyter
直接打开Excel,可以增改删,但如果只是查了?Jupyter Lab/Jupyter Notebook是件利器. 工作内容之一,是复制Excel的一条记录,姓名.身份证号.银行卡号,粘贴在Word的 ...
- spring-boot+spring-cloud+maven-module 一个 maven多模块的微服务架构模版
spring-boot-cloud-module spring-boot+spring-cloud+maven-module 一个 maven多模块的微服务架构模版. 新手上路的绝佳模版,只有必要的配 ...
- calc less 下不起作用
在 less中不能使用css3 calc属性不能 css3 新增长度计算属性 可以根据不同单位计算宽度 .test{ width: calc(100% - 150px); } 但是当我们在less中使 ...
- flink进阶篇
Flink 面试--进阶篇 1.Flink是如何支持批流一体的? 2.Flink是如何做到高效的数据交换的? 3.Flink是如何做容错的? 4.Flink 分布式快照的原理是什么? 5.Flink ...
- HDU 2013 (水)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2013 题目大意:已知最后一天桃子只有一个,告诉你猴崽子第一天吃掉总桃子数的一半多一个,第二天吃掉剩下总 ...
- Python --元组与列表的差异
· Python中的元组与列表类似,不同之处是元组的元素不能修改 · 元组使用小括号,不使用括号也可以,列表使用方括号 for example:
- Python单元测试框架:pytest
(一)介绍 pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点: 1.简单灵活,容易上手: 2.支持参数化: 3.能够支持简单的单元测试和复杂的功能测试,还可以用来做sele ...
- Js运算符和逻辑结构
1.运算符 (1)赋值运算符 = += -= *= /= %= (2)三目运算符 一目 一个运算符连接一个数据 -- ++ ! 二目 一个运算符连接两个数据 + - * / ...
- 数据结构----双端队列Dque
双端队列的概念与数据结构 deque(也称为双端队列)是与队列类似的项的有序集合.它有两个端部,首部和尾部,并且项在集合中保持不变. deque 特殊之处在于添加和删除项是非限制性的.可以在前面或后面 ...