对于类而言,为了让客户端获取它自身的一个实例,最常用的方法就是提供一个公有的构造器。
还有一种方法,名为静态工厂方法(不对应于设计模式中的工厂方法).
我们应该考虑用静态工厂方法代替构造器。
一个静态工厂方法创建对象的简单例子:
Learn and live
对于类而言,为了让客户端获取它自身的一个实例,最常用的方法就是提供一个公有的构造器。
还有一种方法,名为静态工厂方法(不对应于设计模式中的工厂方法).
一个静态工厂方法创建对象的简单例子:
前言:git使用https协议,每次pull, push都要输入密码,相当的烦。
使用git协议,然后使用ssh密钥。这样可以省去每次都输密码。
大概需要三个步骤:
在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。
将抽象部分与实现部分分离,使它们都可以独立的变化。
在使用Java集合的时候,都需要使用Iterator
。但是Java集合中还有一个迭代器ListIterator
,在使用List
、ArrayList
、LinkedList
和Vector
的时候可以使用。迭代器指向的位置是元素之前的位置。
支持双击缩放和双指缩放
仿Android通讯录右侧的字母索引条,可通过setTextView(TextView LetterNotice)
方法设置选中字母弹出样式,默认不显示。通过setOnTouchBarListener(OnTouchBarListener listener)
响应点击的回调事件。
drawText
方法参数含义:canvas.drawText(String text, float x, float y, Paint paint)
,第一个参数是需要绘制的文本,第四个参数是画笔,第二和第三个参数的含义在不同的情况下的值是不一样的,x默认是这个字符串的左边在屏幕的位置,y是指定这个字符基线baseline
在屏幕上的位置,如果设置了paint.setTextAlign(Paint.Align.CENTER)
那就是字符的中心。
基本数据类型包括byte、char、short、int、long、float、double、boolean。
java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类