面向对象

面向对象

1.简介;
面向对象是相对于面向过程而言,面向过程强调功能的行为,而面向对象强调的是将功能封装进对象,强调具备了功能的对象。
2. 面向对象的一些概念:
类、对象、继承、封装、多态等
3. 对象的组成
属性、行为(类也是如此)
4.类是对大量对象共性的抽象、是创建对象的模板。
一、类
1.定义类的语法:
【修饰符】class 类名{
//变量
//方法}
例如:public class name{}

2.定义变量的语法:
【修饰符】数据类型 变量名=变量值
例如:(public) Int a=12;
3.成员变量和局部变量
成员变量:
成员变量定义在类中,在整个类中都可以被访问。
成员变量随着对象的建立而建立,存在于对象所在的堆内存中。
成员变量有默认初始化值。
局部变量:
局部变量只定义在局部范围内,如:函数内,语句内等。
局部变量存在于栈内存中。
作用的范围结束,变量空间会自动释放。
局部变量没有默认初始化值。
4.类的使用
实例化对象 :
类名 类变量名=new 类名(); Student stu=new Student();
获取属性值:
变量类型 变量名= 类变量名.属性名; int stu1=stu.name;
设置属性值:
类变量名.属性名=属性值; stu.name=”李铭”;
调用方法 ;
类变量名.方法名([参数值,参数值,…]); stu.study()
二、方法的重载
1.概念:
在同一个类中,允许有多个同名的函数,只要他们的参数个数和类型不同即可。
2.特点:
与返回值类型无关,只看参数列表。(优点是方便阅读,优化程序设计)
例如:
在这里插入图片描述

三、构造器(相当于重载)
1.特点:
函数名和类名相同,不用定义返回值类型,没有具体的返回值类型。
2.作用
给对象进行初始化
3.语法结构:
【修饰符】方法名和类名相同(【参数类型 参数名,’…………】){ }
在这里插入图片描述

注意:构造器没有返回类型,包括关键字void也不能有,任何类都含有构造器。如果没有显式地定义类的构造器,则系统会为该类提供一个默认的构造器。这个默认的构造器不含任何参数。一旦在类中显式地定义了构造器,系统就不会再为这个类提供默认的构造器了。

4.构造器的使用:
通过使用new运算符构造对象
语法:
类名 类变量名=new 类名([参数值]);
//使用无参构造器
GouTest g=new GouTest();
//使用有参构造器且第一个参数是字符串 第二个参数是整数int类型
GouTest g=new GouTest(“消除”,20);

四、this关键字
1.特点:
This代本类对象的引用。当在函数内需要调用该函数的对象时候,就用this。
在这里插入图片描述
this([参数列表])调用一个类的另外一个构造方法
在这里插入图片描述

调用:调用构造方法的类的时候会直接执行里面的方法
在这里插入图片描述
**注意:**this(【参数值1,参数值2,………】);必须在第一行。

五、实例成员和类成员
什么是类成员:
使用static修饰的成员方法和成员变量称为类成员
使用static修饰的成员变量叫做类变量
使用static修饰的成员方法叫做类方法
什么是实例成员:
未使用static修饰的成员方法和成员变量称为实例成员
未使用static修饰的成员变量叫做实例变量
未使用static修饰的成员方法叫做实例方法
static关键字:
用于修饰成员(成员变量和成员函数)
被修饰后的成员具备以下特点:
随着类的加载而加载
优先于对象存在
被所有对象所共享
可以直接被类名调用
使用注意:
静态方法只能访问静态成员
静态方法中不可以写this,super关键字
主函数是静态的
在这里插入图片描述

六、封装
封装的概念:
把客观事物封装成抽象的类,并且类可以把自己的属性和方法只让可信的类或者对象进行操作,对不可信的类或者对象隐藏,这样的过程叫做封装。
封装的分类:
对属性的封装:
将属性设置为private(私有),限制其只能在类的内部使用
对方法的封装:
对于方法的封装,将外部可以访问方法设置为public,将外部不能访问的方法设置为private。
在这里插入图片描述

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值