类和对象

9.Java类和对象 详解(一)

北城余情 提交于 2020-02-06 13:05:25
一、面向对象简述 面向对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM提出的,在70年代的Smaltalk语言之中进行了应用,后来根据面向对象的设计思路,才形成C++,而由C++产生了Java这门面向对象的编程语言。 但是在面向对象设计之前,广泛采用的是面向过程,面向过程只是针对于自己来解决问题。面向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也不考虑修改的可能性,面向对象,更多的是要进行子模块化的设计,每一个模块都需要单独存在,并且可以被重复利用,所以,面向对象的开发更像是一个具备标准的开发模式。 在面向对象定义之中,也规定了一些基本的特征: (1)封装:保护内部的操作不被破坏; (2)继承:在原本的基础之上继续进行扩充; (3)多态:在一个指定的范围之内进行概念的转换。 对于面向对象的开发来讲也分为三个过程:OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)。 二、类与对象的基本概念 类与对象时整个面向对象中最基础的组成单元。 类 :是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法); 对象 :对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。 可以一句话来总结出类和对象的区别:类是对象的模板,对象是类的实例

类和对象 关于继承 关于接口

不问归期 提交于 2020-02-05 16:47:52
一、类和对象 >对象将数据和操作打包在一起,类描述一切 >用构造器创建对象 >类和类之间的关系 -关联(组合,聚集) -泛化 二、关于继承 祖先类Object 方法重写 toString方法 Equals方法 is-a 是一个 继承关系 has-a 有一个 组合关系 三、关于接口 定义了一组功能 Comparable接口-可比较 Comparator接口-有比较器     Cloneable接口-可克隆 Serializable接口-可输入输出 五、建一个学生类 //面向对象就是把数据和操作整合在一起 public class Student { protected String name;//protected可以让属性在子类中可用 protected int age; protected int ability; private Teacher teacher;//聚集 public Student(String name, int age) { super(); this.name = name; this.age = age; } public void study() { ability++; } @Override public String toString() {//重写toString return "Student [name=" + name + ", age

MyBatis核心接口和类

百般思念 提交于 2020-02-05 01:43:52
MyBatis核心接口和类    SqlSessionFactoryBuilder :       SqlSessionFactoryBuilder负责构建SqlSessionFactory。它的最大特点是:用过即丢。一旦创建了SqlSessionFactory对象之后,这个类就不需要存在了,因此SqlSessionFactoryBuilder的最佳范围就是存在于方法体内,也就是局部变量而已。    SqlSessionFactory :       SqlSessionFactory简单的理解就是创建SqlSession实例的工厂。所有的MyBatis应用都是以SqlSessionFactory实例为中心,SqlSessionFactory的实例可以通过SqlSessionFactoryBuilder对象来获得。有了SqlSessionFactory实例后,就可以通过SqlSessionFactory实例的openSession()方法来获取SqlSession实例。       SqlSessionFactory对象一旦创建,就会在整个应用运行过程中始终存在。没有理由去销毁或再创建它,并且在应用运行中也不建议多次创建SqlSessionFactory。因此SqlSessionFactory的最佳作用域是Application,即随着应用的生命周期一同存在。   

C++系列:对象和类(一)

岁酱吖の 提交于 2020-02-02 00:43:20
背景 面向对象编程 首先, 面向对象编程(Object-Oriented Programming, OOP) 是一种 编程风格/程序设计思想/编程范式 。它 强调以对象(数据+方法)为中心 ,而不是以过程为中心(即面向过程编程)。 由此可见,从某种意义上讲,编程语言可以在不同程度上支持这种风格。即使 C 语言也可以实现这种风格,只不过实现起来难度更大、更为曲折。 C++ 就是对 OOP 特性支持的比较好的编程语言。 抽象 抽象(abstraction) 是一种 OOP 特性。处理复杂问题的方法之一就是提供 简单的 抽象 。那么,抽象究竟表示什么意思? 这里的抽象 表示去除 无关信息 或隐藏细节信息,以减少问题复杂度的过程 。 一个典型的例子是:对于老司机开车这件事,我们只需要关心速度、油量等指标(数据表示);以及启动、换挡、踩油门、刹车、转方向盘、开闪光灯等操作过程(数据操作)。我们不需要知道发动机究竟怎么启动的,电路和管路是怎么布局的等问题。 因此,这里使用抽象的一个关键就是:尝试从用户的角度去考虑对象的构建,先去定义用户和对象的交互(即接口),再去想对象的内部数据和接口实现。 封装 封装(encapsulation) 是一种 OOP 特性。封装有多种含义,OOP 中的封装的语义是:将数据表示和数据操作,绑定到一个对象中,不能直接访问对象的数据,只能通过方法来访问或修改对象的数据

Java基础——类和对象

﹥>﹥吖頭↗ 提交于 2020-02-01 20:00:23
Java基础——类和对象 类和对象 类的定义:一组相关属性和行为的集合,是Java中 最基本 的单位。 类中包括 成员变量 (事物的属性)和 成员方法 (事物的行为)。 定义类就是定义类中的成员(成员变量和成员方法)。 对象的定义:该类事物中的具体体现。 对象的使用 创建对象并使用 格式:类名 对象名 = new 类名(); 注意事项:对象名为合法的标识符,若为一个单词,则所有字母小写,若为多个单词,则从第二个单词开始首字母大写。 使用成员变量 格式:对象名.变量名; 使用成员方法 格式:对象名.方法名(参数); 成员变量和局部变量的区别 在类中的位置不同 成员变量在类中,方法外。 局部变量在方法定义中或方法声明上。 在内存中位置不同 成员变量在 堆内存 ,属于对象。 局部变量在 栈内存 ,属于方法。 生命周期不同 成员变量随着 对象 创建而存在,随着对象消失而消失。 局部变量随着 方法调用 而存在,随着方法调用结束而消失。 初始化值不同 成员变量有默认初始化值。 局部变量没有默认的初始化值,必须定义,赋值然后使用。 注意事项 局部变量名称可以和成员变量名称一样,在方法使用时采取 就近原则 。 基本数据类型变量: byte short int long float double boolean char 。 引用数据类型变量: 数组 类 接口 枚举 。 来源: CSDN 作者:

Scala类和对象笔记

怎甘沉沦 提交于 2020-02-01 17:18:02
参考哔哩哔哩 https://www.bilibili.com/video/av76280600?from=search&seid=10529351688409433389 1.数据类型 与Java类似,区分大小写;(首字母大写) 不同点: Unit表示无值,与Java的void等同; Nothing所有其他类型的子类型,表示没有值; Any所有类型的超类,任何实例都属于Any类型;很像object Nil长度为0的List; 2.val 和 var Scala中定义变量用var Scala中定义变量用val; 尽量使用val易于回收; /** * Scala object相当于Java中的单例,object中定义的全是静态的 * 定义变量var,定义常量val;变量和常量类型可以省略不写,会自动推断; * 每行后面有分号自动推断机制,不用显示写“;” */ object Test_ClassAndObj { def main(args: Array[String]): Unit = { val a = 1 var b=2 b = 3 println(a+b) } } 3.Scala类中可以传参,传参一定要指定类型,有了参数就有了默认了构造。类中属性默认有getter和setter方法 class Student(sname :String,sage:Int){ val name

类和对象

久未见 提交于 2020-02-01 10:22:46
1.构造方法是一种特殊方法, 使用关键字new实例化新对象时会被自动调用, 用于完成初始化操作. 2.this表示当前对象引用(注意不是当前对象). 可以借助 this 来访问对象的字段和方法 3.构造块:定义在类中的代码块(不加修饰符)。也叫:实例代码块。构造代码块一般用于初始化实例成员变量。 4.静态代码块,使用static定义的代码块。一般用于初始化静态成员属性。 5.toString方法 6.匿名对象 来源: CSDN 作者: star9523 链接: https://blog.csdn.net/star9523/article/details/104129277

类属性,类方法和静态方法

人走茶凉 提交于 2020-01-31 20:40:08
类属性,类方法和静态方法 1.类属性 类方法 类属性:针对类对象定义的属性 使用赋值语句在class关键字下可以定义类属性 类方法:针对类对象定义的方法 在类方法内部可以直接访问类属性或者调用其他的类方法 class Toy(object): # 使用赋值语句 记录所有的玩具数量 count = 0 def __init__(self,name): self.name = name # 让类属性+1 Toy.count += 1 @classmethod def show_toy_count(cls): print('玩具对象的数量 %d' %(cls.count)) # 创建玩具对象 toy1 = Toy('乐高') toy2 = Toy('泰迪熊') # 调用类方法 Toy.show_toy_count() 2.静态方法 静态方法:通过类名调用静态方法,不需要创建对象,直接就可以调用 class Cat(object): @staticmethod def call(): print('喵喵~') # 静态方法:通过 类名. 调用静态方法 # 不需要创建对象 直接就可以调用 Cat.call() 来源: CSDN 作者: _nigar 链接: https://blog.csdn.net/nigar_/article/details/104119654

类和对象的认识

北战南征 提交于 2020-01-30 05:36:12
1.定义String型变量 s没有初始化,进行如下操作,代码不能编译通过。 public static void main(String[] args){ String s; System.out.println(“s=”+s); } 2.对静态变量的引用的两种方式: (1)类.静态变量 (2)对象.静态变量 3. boolean 默认初始值false 4. 方法中不能定义static变量 5. 一个类中已经使用 private 来修饰的变量, 类的调用者(main方法中)不能直接使用,可以再这个类中次写一个方法,然后再在main方法中调用这个方法。 来源: CSDN 作者: star9523 链接: https://blog.csdn.net/star9523/article/details/104106384

ES6 类和对象

旧巷老猫 提交于 2020-01-30 03:57:18
基本编程思想 面向过程 面向过程就是分析出解决问题所需要的步骤,然后函数把这些步骤一步一步实现,使用的时候再一个一个依次调用就可以了 面向过程就是按照我们分析好的步骤,按照步骤解决问题 面向对象 面向对象是把事物分解为一个个对象,然后对象之间分工合作 面向对象是以对象来划分问题,而不是步骤 特点 封装性 继承性 多态性 举例:将大象装进冰箱 面向过程做法: 1.打开冰箱 2.将大象放进去 3.关上冰箱门 面向对象做法: 1.大象对象 进去 2.冰箱对象 打开 关闭 3.使用大象和冰箱的功能 对比 面向过程 优点:性能别面向对象高,适合跟硬件联系紧密的东西,例如单片机就采用的面向过程编程 缺点:没有面向对象易维护、易复用、易扩展 面向对象 优点:易维护、易复用,由于面向对象有封装、继承、多态性的特性、可以设计出低耦合的系统,使系统更加灵活、更加易于维护 缺点:性能比面向过程低 ES6中的类和对象 对象 js中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。 对象是由属性和方法组成的: 属性:事物的特征,在对象中用属性来表示 方法:事物的行为,在对象中用方法来表示 类 class ES6中新增加了类的概念,可以使用 class 关键字声明一个类,之后以这个类来实例化对象 类抽象了对象的公共部分,它泛指某一大类(class) 对象特指某一个