这段时间体验和学习OC,虽然这么多年基本都在使用C系列语言(C,C++,C#),但是仍然有很多的不习惯. 当然,这些不习惯不代表讨厌或者不好,也许这些就是OC作为Apple开发首选语言而显得特殊的一些原因吧.下面列举一下主要的不习惯: 1. 称调用对象的方法为向对象发送消息.这两者的仔细理解是一致的概念,都是对象1委托对象2做某件事情,至于对象2怎么做,对象1不管. 2. 方括号表达方式,替代了这些年相濡以沫的点和箭头语法.当然APPLE提供了类似的语法来让C系列开发者习惯旧的方式,但是我认为既…
为什么说JAVA中要慎重使用继承   这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两个无法回避的缺点: 打破了封装性,子类依赖于超类的实现细节,和超类耦合. 超类更新后可能会导致错误. 继承打破了封装性 关于这一点,下面是一个详细的例子(来源于Effective Java第16条) public class MyHashSet<E> extends HashSet<E>…
Java的Object是所有引用类型的父类,定义的方法按照用途可以分为以下几种: (1)构造函数 (2)hashCode() 和 equals() 函数用来判断对象是否相同 (3)wait().wait(long).wait(long,int).notify().notifyAll() 线程等待和唤醒 (4)toString() (5)getClass() 获取运行时类型 (5)clone() (6)finalize() 用于在垃圾回收. 这些方法经常会被问题到,所以需要记得. 由这几类方法涉及…
原文标题:Variables in Kotlin, differences with Java. var vs val (KAD 02) 作者:Antonio Leiva 时间:Nov 28, 2016 原文链接:http://antonioleiva.com/variables-kotlin/ Kotlin系列课程的第二课:Kotlin中变量不同于Java: var 对val. 在这第二章节中,我们将了解Kotlin中变量是怎样工作的,什么是val和var,什么时间使用它们. 我从这开始,是因…
Object是所有类的父亲,这个类有很多方法,我们都可以直接调用,但有些方法并不适合,例如下面的student类 public class Student { //姓名.学号.年纪 private String name; private int sid; private int age; //定义构造方法,给对象初始化 public Student(){ } public Student(String name,int sid,int age){ this.name=name; this.si…
之前的几条都不断地重复着for...in循环,它便利好用,但又容易被原型污染.for...in循环最常见的用法是枚举字典中的元素.这里就是从侧面提出不要在共享的Object.prototype中增加可枚举的属性.这就导致,我们在开发的时候,不能在Object.prototype中添加有用的方法.如,我们想增加一个产生对象属性名数组的allKeys方法将会怎么样? Object.prototype.allKeys=function(){ var res=[]; for(var key in thi…
java中的hashcode.equals和toString方法都是基类Object的方法. 首先说说toString方法,简单的总结了下API说明就是:返回该对象的字符串表示,信息应该是简明但易于读懂的信息表达式,一般来说大部分的常见类都会重写这个方法.比如Collection会重写的该方法就会在集合前后加上[ ]中间的元素中间会加上.但是如果没有重写的话Object的默认的toString方法是返回:getClass().getName() + '@' + Integer.toHexStri…
Object类中包含一个方法名叫getClass,利用这个方法就可以获得一个实例的类型类.类型类指的是代表一个类型的类,因为一切皆是对象,类型也不例外,在Java使用类型类来表示一个类型.所有的类型类都是Class类的实例.…
前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自己定义动画.这一篇我们来看看怎样将Android中的动画运用到实际开发中的一个场景--Activity之间跳转动画. 一.定义动画资源 假设对Android中的动画不了解.请先阅读<Android中的动画具体解释系列[1]--逐帧动画><Android中的动画具体解释系列[2]--飞舞的蝴蝶><Android中的动画具体解释系列[3]--自己定义动画研究>. 进入动画(要启动的Activity) <?…
目录 概述 hashCode方法 getClass方法 toString方法 equals方法 clone方法 finalize方法 概述 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法.所有的类都直接或者间接的继承自Object类.该类的设计也符合面向对象中"万事万物皆对象"的思想. 构造方法 public Object() 任何一个类都会调用这个方法,访问子类构造方法的首先会先访问父类无参的构造方法. hashCode…