类和对象

js中对类和对象的理解

一笑奈何 提交于 2020-03-16 05:46:48
类 : 对一群具有相同特征的对象的集合的描述; 对象: 真实存在的对象个体; **面向对象,而不是面向类。 1.一切皆对象,继承靠原型链,多态靠弱类型,封装……虽然可以靠闭包,但我个人更推崇和python一样的,下划线代表私有的风格 2.比如人类,指的是一个范围; 对象:比如某个人,指的是这个范围中具体的对象 3.Javascript中的function作为构造函数时,就是一个类,搭配上new操作符,可以返回一个对象。 当然,要生成一个对象,也可以用字面量的形式,例如var obj = {x: 1, y: function(){} }; 类可以理解为一个模板,而对象就是根据这个模板造出来的具体实例。 instanceof 判断一个对象是不是属于一个类 对象 instanceof 构造函数 自己的父级 父级 。。。。 constructor 判断直接的父级 1.Object instanceof Function true Object instanceof Object true Function instanceof Function true Function instanceof Object true 2. var arr = new Array(); var date = new Date(); arr instanceof Array true date

oc类和对象

偶尔善良 提交于 2020-03-15 07:40:50
1、类和对象的概念 类是现实世界或者思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。对象是具有类类型的变量。类和对象是面向对象编程技术中得最基本的概念 2、类和对象的关系 类是对象的抽象,而对象是类的具体实例 类是抽象的,不占用内存,而对象是具体的,占用存储空间。 类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板 3、类的声明和实现 @interface Person : NSObject{     //成员变量的声明 注意:不能初始化     //成员变量默认是私有的,只在本身这个类中可以使用 } //方法的声明 @end //类的实现部分 @implementation Person @end @interface表示类的开始 Person 是这个类的类名 NSObject是这个类的父类 4、方法的声明 @interface Person : NSObject{   //成员变量的声明   NSString *name;   int age; } //方法的声明 -(void)setName:(NSString *)aName;//只有一个参数的方法 -(void)setName:(NSString *)aName andAge:(int)aAge;//多个参数 @end 5、方法的实现 @implementation

类方法和类实例的区别

我们两清 提交于 2020-03-14 19:53:54
方法根据是否有static修饰也可以分为类方法和对象方法(实例方法)。 访问时,类方法可以直接通过类名来引用,而实例方法必须通过对象名来访问,也就是说要想使用实例方法,就必须创建一个该类的对象。 Math类的方法都是类方法,在使用时,可以如下: double s=Math.sin(30); Properties prop=System.getProperties(); 一般而言,类方法的执行不依对象而改变。在定义方法时,一些与对象无关的通用方法通常被定义为类方法。由于类方法是属于整个类的,并不属于哪个对象,所以类方法的方法体中不能有与类的对象有关的内容,所以出现下面的情况的时候会出现编译错误: 1 类方法中不能引用对象变量 2 类方法中不能调用类的对象方法 3 在类方法中不能使用super、this关键字。 使用对象方法时,必须先创建对象实例,然后才能使用,如: Student stu=new Student("0701956"); stu.showAcademicRecord(); 与类方法相比,对象方法基本上没有什么限制: 1 对象方法可以引用对象变量,也可以引用类变量 2 对象方法中可以调用类方法 3 对象方法中可以使用super、this关键字。 来源: https://www.cnblogs.com/xianspace/archive/2008/12/07/1349733

Java中的类和对象怎么理解?

橙三吉。 提交于 2020-03-14 02:30:17
一:类和对象的概念 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一类对象的行为和状态。 Java中的对象 现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。 拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。 对比现实对象和软件对象,它们之间十分相似。 软件对象也有状态和行为。 软件对象的状态就是属性,行为通过方法体现。 在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。 Java中的类 类可以看成是创建Java对象的模板。 通过下面一个简单的类来理解下Java中类的定义: public class Dog{ String breed; int age; String color; void barking(){ } void hungry(){ } void sleeping(){ } } 一个类可以包含以下类型变量: 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法

类和对象系列教材 (十一)- 如何进行Java的属性初始化

别等时光非礼了梦想. 提交于 2020-03-10 06:57:04
步骤1:对象属性初始化 步骤2:类属性初始化 步骤3:练习-属性初始化 步骤4:答案-属性初始化 步骤 1 : 对象属性初始化 对象属性初始化有3种 1. 声明该属性的时候初始化 2. 构造方法中初始化 3. 初始化块 package charactor; public class Hero { public String name = "some hero" ; //声明该属性的时候初始化 protected float hp; float maxHP; { maxHP = 200 ; //初始化块 } public Hero(){ hp = 100 ; //构造方法中初始化 } } 步骤 2 : 类属性初始化 类属性初始化有2种 1. 声明该属性的时候初始化 2. 静态初始化块 package charactor; public class Hero { public String name; protected float hp; float maxHP; //物品栏的容量 public static int itemCapacity= 8 ; //声明的时候 初始化 static { itemCapacity = 6 ; //静态初始化块 初始化 } public Hero(){ } public static void main(String[] args) {

类和对象系列教材 (十二)- 怎么写一个Java的饿汉式与懒汉式单例模式

倖福魔咒の 提交于 2020-03-10 05:42:50
LOL里有一个怪叫大龙GiantDragon,只有一只,所以该类,只能被实例化一次 步骤1:单例模式 步骤2:饿汉式单例模式 步骤3:懒汉式单例模式 步骤4:什么时候使用饿汉式,什么时候使用懒汉式 步骤5:单例模式三元素 步骤6:练习-单例模式 步骤7:答案-单例模式 步骤 1 : 单例模式 单例模式又叫做 Singleton模式,指的是一个类,在一个JVM里,只有一个实例存在。 步骤 2 : 饿汉式单例模式 GiantDragon 应该只有一只,通过私有化其构造方法,使得外部无法通过new 得到新的实例。 GiantDragon 提供了一个public static的getInstance方法,外部调用者通过该方法获取12行定义的对象,而且每一次都是获取同一个对象。 从而达到单例的目的。 这种单例模式又叫做 饿汉式 单例模式,无论如何都会创建一个实例 GiantDragon.java TestGiantDragon.java package charactor; public class GiantDragon { //私有化构造方法使得该类无法在外部通过new 进行实例化 private GiantDragon(){ } //准备一个类属性,指向一个实例化对象。 因为是类属性,所以只有一个 private static GiantDragon instance = new

类和对象系列教材 (十三)- 枚举类型

断了今生、忘了曾经 提交于 2020-03-09 15:27:35
步骤1:预先定义的常量 步骤2:使用枚举的好处 步骤3:遍历枚举 步骤4:练习-枚举 步骤5:答案-枚举 步骤 1 : 预先定义的常量 枚举enum是一种特殊的类(还是类),使用枚举可以很方便的定义常量 比如设计一个枚举类型 季节,里面有4种常量 public enum Season { SPRING,SUMMER,AUTUMN,WINTER } 一个常用的场合就是 switch 语句中,使用枚举来进行判断 注: 因为是常量,所以一般都是全大写 HelloWorld.java Season.java public class HelloWorld { public static void main(String[] args) { Season season = Season.SPRING; switch (season) { case SPRING: System.out.println( "春天" ); break ; case SUMMER: System.out.println( "夏天" ); break ; case AUTUMN: System.out.println( "秋天" ); break ; case WINTER: System.out.println( "冬天" ); break ; } } } public enum Season { SPRING

类和对象的概念

核能气质少年 提交于 2020-03-04 12:19:26
类和对象的基本概念 类:抽象名词,代表一个集合,共性的事物 对象:具象的事物,单个个体 类和对象的关系 对象:代表一类事物的某一个个体 类:代表的是一大类事物 类中的内容,应该具有两个内容 表明事物的特征,是静态属性(变量) 表明事物功能或动作,是动态属性也称方法(函数) 定义类 类中的静态变量和方法名在程序加载过程中就已经执行完了,不需要等待调用 在整个类加载完之前,类名还不会出现在内存中 class Person : # 定义属性 walk_way = '直立' # 定义方法 # __init__方法是给对象封装属性 def __init__ ( self , name , age ) : self . name = name self . age = age def eat ( self ) : print ( 'eat' ) obj = Person ( 'bob' , 20 ) # 在内存实例化一个对象空间 print ( obj . name ) # bob 实例化过程: 在内存开辟一个对象空间,含有类对象指针的对象空间,该指针指向类 自动执行类中的 __init__ 方法,并将对象空间传给self参数,其他参数需要传入 执行 __init__ 方法,给对象空间封装相应的属性 查看类或对象的内置属性 print ( Person . __dict__ ) #

类和类的实例化

我们两清 提交于 2020-03-03 05:59:59
类是一类对象的统称,对象就是这一类具体化的一个实例。 1、基本语法 // 创建类 class < class_name > { field ; //成员属性 method ; //成员方法 } // 实例化对象 < class_name > < 对象名 > = new < class_name > ( ) ; 类中的元素称为:成员属性。类中的函数称为:成员方法 注意: 如果类当中的数据成员没有初始化,则默认值为0。 如果是引用类型,默认值为NULL。 如果是简单类型,那么就是0值。 char -> \u0000 boolean-> false 2、类的实例化 用类 类型创建对象的过程,称为类的实例化。 new 关键字用于创建一个对象的实例。 使用 . 来访问对象中的属性和方法。 同一个类可以创建对个实例。 来源: CSDN 作者: qq_43370834 链接: https://blog.csdn.net/qq_43370834/article/details/104619602

java类和对象:类的序列化

我们两清 提交于 2020-03-01 10:20:03
1、序列化介绍 Java 串行化技术可以使你将一个对象的状态写入一个Byte流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的串行化机制是RMI、EJB等技术的技术基础。 用途:利用对象的串行化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。 序列化是为了解决在对对象流进行读写操作时所引发的问题。 2、串行化的特点 (1)如果某个类能够被串行化,其子类也可以被串行化。如果该类有父类,则分两种情况来考虑,如果该父类已经实现了可串行化接口。则其父类的相应字段及属性的处理和该类相同;如果该类的父类没有实现可串行化接口,则该类的父类所有的字段属性将不会串行化。 (2)声明为 static和transient类型的成员数据不能被串行化 。因为static代表类的状态, transient代表对象的临时数据; (3)相关的类和接口:在java.io包中提供的涉及对象的串行化的类与接口有ObjectOutput接口、ObjectOutputStream类、ObjectInput接口