Object Oriented Programming(1)

2024-04-17 13:32
文章标签 object programming oriented

本文主要是介绍Object Oriented Programming(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 写在前面
  • 类与对象
  • 类设计技巧

写在前面

夏季学期学得javaEE中的javaSE部分上得比较紧凑 (快忘完了),也想熟悉一下CSDN的markdown格式,就尝试一下第一篇博客啦

类与对象

面向对象顾名思义把待求解的问题划分给若干个对象去处理,而对象就是某一种类的一个实例。

  • 属性与方法:
    每一个对象都有自己的状态与能力,分别对应了属性(域)与方法, 常见的方法有:setter、getter、toString…
    get与set方法实现了OOP的封装性,使属性只能通过get方法获得,set方法设置,保证了对象某些属性的安全。
  • 访问权限控制:
    访问权限控制关键字
  • Construct:
    1.this调用属性,多种构造器的Overload,不需要返回值类型。
    2.无定义构造器,默认无参构造器,将属性初始化为默认值,有定义则没有无参构造器。
    3.构造器的执行过程:先对属性进行赋值(执行初始化块,也是一种初始化方法),再执行构造器。
    4.采用this关键字隐式调用构造器,语句必须放在构造器第一行。
  • final修饰符:即常量,只读的。
  • static:静态的,构造静态方法、静态属性时用到,又称类方法、类属性,是整个类所公用的,静态方法不能向某一对象施加操作,但可以由对象完成(不建议)。
  • 方法参数在java中按值调用,先拷贝,结合引用理解。
  • Java不支持析构器,有自动垃圾回收机制。有finalize方法。
  • java文件的组织形式是包,类似文件夹的组织形式。以互联网域名的逆序作为包名。
    庞大的java类库也以包的形式组织,常见的导入方式如下:
import java.util.Date;	
import java.util.*;		//*只能导如一个包,java.*.*是不合法的
import static java.lang.System.*;	//静态导入

未组织的文件放在default package中,编译与运行类从基目录开始

javac com/mycompany/PayrollApp.java		//编译对文件操作
java com.mycompany.PayrollApp 		//执行对类操作

类设计技巧

1.保证数据私有(封装性)
2.数据记得初始化
3.不要再一个类中定义太多基本数据类型,可继续封装为其他的类(低耦合)
4.有一些属性不需要get、set方法。
5.类名与方法名要见名知义。

第二篇写继承,快乐的寒假不知道什么时候写第二篇了~

这篇关于Object Oriented Programming(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/911926

相关文章

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

error while loading shared libraries: libnuma.so.1: cannot open shared object file:

腾讯云CentOS,安装Mysql时: 1.yum remove libnuma.so.1 2.yum install numactl.x86_64

java基础总结12-面向对象8(Object类)

1 Object类介绍 Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object。所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗

王立平--Object-c

object-c通常写作objective-c或者obj-c,是根据C语言所衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言。它主要使用于MacOSX和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在gcc运作的系统写和编译,因为gcc含Objective-C的编译器。在MA

COD论文笔记 ECCV2024 Just a Hint: Point-Supervised Camouflaged Object Detection

这篇论文的主要动机、现有方法的不足、拟解决的问题、主要贡献和创新点: 1. 动机 伪装物体检测(Camouflaged Object Detection, COD)旨在检测隐藏在环境中的伪装物体,这是一个具有挑战性的任务。由于伪装物体与背景的细微差别和模糊的边界,手动标注像素级的物体非常耗时,例如每张图片可能需要 60 分钟来标注。因此,作者希望通过减少标注负担,提出了一种仅依赖“点标注”的弱

COD论文笔记 Adaptive Guidance Learning for Camouflaged Object Detection

论文的主要动机、现有方法的不足、拟解决的问题、主要贡献和创新点如下: 动机: 论文的核心动机是解决伪装目标检测(COD)中的挑战性任务。伪装目标检测旨在识别和分割那些在视觉上与周围环境高度相似的目标,这对于计算机视觉来说是非常困难的任务。尽管深度学习方法在该领域取得了一定进展,但现有方法仍面临有效分离目标和背景的难题,尤其是在伪装目标与背景特征高度相似的情况下。 现有方法的不足之处: 过于

《Zero-Shot Object Counting》CVPR2023

摘要 论文提出了一种新的计数设置,称为零样本对象计数(Zero-Shot Object Counting, ZSC),旨在测试时对任意类别的对象实例进行计数,而只需在测试时提供类别名称。现有的类无关计数方法需要人类标注的示例作为输入,这在许多实际应用中是不切实际的。ZSC方法不依赖于人类标注者,可以自动操作。研究者们提出了一种方法,可以从类别名称开始,准确识别出最佳的图像块(patches),用

sqlplus: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such

在Zabbix Server服务器上安装oracle-instantclient11.2后,结果使用sqlplus命令时遇到“sqlplus: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory“错误,下面总结一下解决过程。

Object::connect: No such slot

信号槽出现这样的问题一定要注意以下几点: ThreadFromQThread work_download ; QObject::connect(this, SIGNAL(send_down_sig(int)),\ &work_download, SLOT(recv_down_info(int))); 注意槽函数仅仅是填

DS简记1-Real-time Joint Object Detection and Semantic Segmentation Network for Automated Driving

创新点 1.更小的网络,更多的类别,更复杂的实验 2. 一体化 总结 终于看到一篇检测跟踪一体化的文章 网络结构如下: ResNet10是共享的Encoder,yolov2 是检测的Deconder,FCN8 是分割的Deconder。 其实很简单,论文作者也指出:Our work is closest to the recent MultiNet. We differ by focus