Day12-面向对象初识
面向对象编程
Java的核心思想就是OOP
一.面向过程&面向对象
面向过程思想:
- 步骤清晰简单,第一步做什么,第二步做什么......
- 面对过程适合处理一些较为简单的问题
面向对象思想:
- 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考,最后,才对某个分类下的细节进行面向过程的思索
- 面向对象适合处理复杂的问题,适合处理需要多人协作的问题
对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到为微观操作。仍然需要面向过程的思路去处理。
二.什么是面向对象
面向对象编程(Object-Oriented Programming,OOP)
面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据
抽象
三大特性:
- 封装
- 继承
- 多态
从认识角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象。
从代码运行角度考虑是先有类后有对象。类是对象的模板。
三.方法回顾
1.方法的定义

package oop;
//demo01 类
public class demo01 {
//main方法
public static void main(String[] args) {
}
/*
修饰符 返回值类型 方法名(。。。){
方法体
return 返回值;
}
*/
//return结束方法,返回一个结果
public String sayHello(){
return "HelloWorld";
}
public void hello(){
return;
}
public int max(int a,int b){
return a > b ? a : b;//三元运算符
}
}
2.方法的调用
package oop;
public class demo02 {
public static void main(String[] args) {
Student.say();
//非静态方法无法直接调用
//实例化这个类 new
//对象类型 对象名字=对象值
Student student = new Student();
student.say1();
}
//和类一起加载的
public static void a(){
//b();无法调用,报错
}
//类实例化之后才存在
public void b(){
}
}
package oop;
//学生类
public class Student {
//静态方法
public static void say(){
System.out.println("学生说话了");
}
//非静态方法
public void say1(){
System.out.println("学生说话了");
}
}
3.实参和形参
package oop;
public class demo03 {
public static void main(String[] args) {
//形式参数与形式参数的类型要一一对应
int add = demo03.add(1, 2);
System.out.println(add);
}
public static int add(int a,int b){
return a+b;
}
}
4.值传递和引用传递
package oop;
//引用传递:对象,本质还是值传递
public class demo05 {
public static void main(String[] args) {
person person = new person();
System.out.println(person.name);//null
demo05.change(person);
System.out.println(person.name);
}
public static void change(person person){
//person是一个对象,指向的 person person = new person();这是一个具体的人,可以改变属性
person.name="LiLiLiYH";//LiLiLiYH
}
}
//定义了一个person类,有一个属性name
class person{
String name;//null
}
Day12-面向对象初识的更多相关文章
- day22.面向对象初识
1.面向对象引入 先来创建一个小游戏:人狗大战 # 定义一个狗 def Gog(name,blood,aggr,kind): dog = { 'name':name, 'blood':blood, ' ...
- python之面向对象初识
一.面向对象初识 1.结构上 面向对象分成两部分:属性.方法 class A: name = 'xiaoming' # 静态属性.静态变量.静态字段. def func1(self): # 函数.动态 ...
- python基础(17)继承类和面向对象初识
1.继承类 class Lm: money = 1000000 house = 5 def driver(self): print('会开车') class Mcb(Lm): def about_me ...
- day06_雷神_面向对象初识
day_06 递归函数 自己用自己.一般递归100多次,都没有解决的问题,放弃递归. count = 0 def func1(): global count count += 1 print(coun ...
- 《Python》 面向对象初识
一.面向对象初识: 1.结构上理解:类由两部分组成 class A: # class是类的关键字,类名首字母默认大写 name = 'alex' # 静态属性,静态变量,静态字段 def func ...
- python递归 及 面向对象初识及编程思想
递归 及 面向对象初识及编程思想 一.递归 1.定义: 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. (1)递归就是在过程或函数里调用自身: (2)在使用递 ...
- python基础学习笔记——面向对象初识
面向对象初识 python中一切皆对象. 类有两种: 新式类:在py3中所有类都是新式类 经典类:在py2中只有类本身继承了object类才叫做新式类,默认是经典类 class Person: cou ...
- Python中面向对象初识到进阶
面向对象初识到进阶 # 面向对象结构: # class 类名: # def __init__(self,参数1,参数2): # self.对象的属性1 = 参数1 # self.对象的属性2 = 参数 ...
- Python面向对象01 /面向对象初识、面向对象结构、类、self、实例化对象
Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 目录 Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 1. 面向对象初识 2. 面向 ...
- python 面向对象专题(一):面向对象初识、面向对象结构、类、self、实例化对象
https://www.cnblogs.com/liubing8/p/11301344.html 目录 Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 1. 面向对象 ...
随机推荐
- 修改python下载镜像源
找到pip.ini(可能在"C:\Users\Administrator\AppData\Roaming\pip\pip.ini")→记事本打开→添加相应源 如果没有找到,在C:\ ...
- 使用Apache PDFBox实现拆分、合并PDF
目录 使用Apache PDFBox实现拆分.合并PDF 问题背景 Apache PDFBox介绍 拆分PDF 合并PDF 拆分 + 合并 完整代码 参考: 使用Apache PDFBox实现拆分.合 ...
- Win10下如何添加“中文简体(美式键盘)”输入法
参考Win10下如何添加"中文简体(美式键盘)"输入法 设置>>时间和语言>>语言>>添加语言>>选择要安装的语言>>英 ...
- 极米投影仪安装apk的方法
https://www.touying.com/t-37871-1.html 方法二:使用U盘安装:1.使用电脑下载软件apk,并将软件apk的后缀修改为"apk1": 2.然后将 ...
- django修改认证模型类
1.我在一个子应用下面创建了一个apps目录,且在apps下又创建了一个子应用users,结构如下图: 2.在users的models.py中 from django.db import models ...
- 集群分发xsync xcall kafka启动脚本命令,命令方式安装epel源
安装epel库源 yum install epel-release -y --nogpgcheck yum install glances 安装开始 建立hosts 白名单 127.0.0.1 loc ...
- onnxruntime源码解析之C接口实现
onnxruntime的C接口,位置为include/onnxruntime/core/session/onnxruntime_c_api.h. 上述文件包含了C函数的声明,对应的实现在onnxrun ...
- Jupyter Notebook安装代码提示功能
默认Jupyter Notebook没有安装代码提示功能,但是我们可以可通过如下命令安装和配置使得Jupyter Notebook具备代码提供功能. (确保Anaconda在环境变量里)1.电脑上搜索 ...
- P标签内容过长以省略号代替
p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
- kotlin inline的缺点
inline关键字修饰的方法,可以在运行时将代码复制到使用处 用来控制打印好用 但有两个缺点: 一.修饰的方法不能太大,行数也不能太多,不然会造成很多重复代码 2.控制打印时,方法的行数最好与使用的行 ...