thinkinginjava学习笔记06_复用类】的更多相关文章

MarsEdit粘代码好麻烦,所有代码交给github:https://github.com/lozybean/MyJavaLearning 复用一个类常用的两种方式:组合.继承: 组合 将对象引用置于新类中,新类就完成了这些对象的复用: Java中,每个非基本对象都有一个toString方法,当需要一个String对象时直接调用:对象的引用在类的定义中会被初始化为null:引用初始化可以在四个地方进行:对象定义时 > 实例初始化 > 类构造器中  > 使用对象之前(按初始化顺序排列):…
1. 组合语法 将对象引用置于新类中. 2. 继承语法 衍生类自动获得基类中所有的域和方法 super关键字表示基类. 1. 初始化基类 当创建一个衍生类的对象时,该对象创建一个基类的子对象并包含子对象. 衍生类实例化时,首先实例化基类,然后在实例化衍生类. Java 会自动在衍生类的构造器中插入对基类默认构造器的调用. 如果基类没有默认构造器,则必须在衍生类构造器中指定基类可用的构造器来初始化基类. 基类在衍生类构造器可以访问它之前,就必须完成初始化. 3. 代理 第三种关系称为代理,Java…
Qt Model/View 学习笔记 (七) Delegate  类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也处理用户的输入.为了获得更多的灵性性,交互通过delegagte执行.它既提供输入功能又负责渲染view中的每个数据项. 控制delegates的标准接口在QAbstractItemDelegate类中定义.Delegates通过实现paint()和sizeHint()以达到渲染内容的目的.然而,简…
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与底层存储数据项的数据结构完全不同. 内容与显式的分离是通过由QAbstractItemModel提供的标准模型接口,由QAsbstractItemview提供的标准视图接口共同实现的.普遍使用model index来表示数据项.view负责管理从model中读取的数据的外观布局. 它们自己可以去渲染…
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescript 学习笔记二:数据类型 Typescript 学习笔记三:函数 Typescript 学习笔记四:回忆Es5 中的类 Typescript 学习笔记五:类 Typescript 学习笔记六:接口 Typescript 学习笔记七:泛型 类的定义 ES5 中定义: function Person (…
Caliburn.Micro学习笔记目录 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详细,自己在看它的文档和代码时写了一些demo和笔记,还有它实现的原理记录一下 学习Caliburn.Micro要有MEF和MVVM的基础 先说一下他的命名规则和引导类 以后我会把Caliburn.Micro的 Actions IResult,IHandle IConductor  ,Conducto…
类和对象: 我们经常会对打印一个对象来得到对象的某些信息. class pair:     def __init__(self,x,y):         self.x=x         self.y=y if __name__=='__main__':     p=pair(3,4)     print p E:\python2.7.11\python.exe E:/py_prj/python_cookbook/chapter8.py <__main__.pair instance at 0…
抽象类是由abstract修饰的类,定义方式如public abstract class A{...}. 接口由interface修饰,定义方式如public interface B{...}. 抽象类与接口的具体特性见下文. 抽象类: (1).抽象类中由abstract修饰的方法称为抽象方法,抽象方法没有具体实现,要等子类继承后再实现:声明方式如public abstract void run();. (2).只要某类中有一个方法为抽象方法,该类就必须要定义为抽象类. (3).抽象类不一定有抽…
接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note7.html,转载请注明源地址. 1.终结类与终结方法 被final修饰符修饰的类和方法,终结类不能被继承,终结方法…
java沿用了c++的构造器,使用一个和类名完全一样的方法作为类的构造器,可以有多个构造器来通过不同的参数进行构造,称为重载:不仅是构造器可以重载,其他方法也一样通过不同的形参以及不同的返回值来实现重载: 当创建一个新的对象的时候,java就需要对该对象进行初始化(如果没有创建构造器,java会自动创建一个无参构造器,也称默认构造器,并对对象进行初始化),构造器函数只对对象进行初始化操作,并没有任何返回值(也不是返回void): java中区分两个方法时,使用每个方法的参数列表(包括参数的顺序)…
初学java,希望旅途愉快  :) 类型决定对象的接口,(有人认为类是类型的特定实现),接口确定对象所能发出的请求(消息),满足请求的代码和隐藏的数据一起构成实现: 对象设计时,应该很好地完成一项任务,并且不试图做更多的事情: 继承实现多态,导出类将包括基类的所有成员以及接口,因此,导出类与基类具有相同类型: 一个完善的基类应该包括所有子类都通用的接口,由导出类设计基类的具体接口实现,并将对象所属的类型当成基类处理(导出类和基类具有相同类型,第二次强调),通过导出新的子类型来扩展封装: 动态绑定…
这一节我们来说说类类型參数和匿名对象. 我们继续用之前的小汽车类吧 class Car { int num;//这是轮胎数属性 String color;//这是颜色属性 String brand;//这是品牌性 void start()//启动行为 { System.out.println("小汽车已启动"); } void run()//这就是执行行为 { System.out.println(num+"..."+color+"..."+br…
27. 属性的__dict__系统 1)对象的属性可能来自: 其类的定义,叫做类属性 继承父类的定义 该对象实例定义(初始化对象时赋值),叫做对象属性 2)对象的属性存储在对象的 __dict__ 属性中: __dict__ 为字典,键为属性名,值是属性本身. 例子: class bird(object): feather = True # 父类 class chicken(bird): fly = False def __init__(self, age): self.age = age #…
因为对内存管理部分一直没有很清楚的思路,所以一直在找资料想系统看一下这部分的内容.在C primer plus里看到了这一章,虽然大多都是心知肚明的东西,但是还是很多概念性系统性的东西让我眼前一亮,把笔记整理到这里来,用于自己回顾. 作用域: l  代码块作用域:在代码块中(花括号包含)定义的变量,函数的形参也具有代码块作用域 l  函数原型作用域:函数原型中使用的变量名 l  文件作用域(全局变量):在所有函数之外(包括main函数)定义的变量具有文件作用域. 链接: l  外部链接:具有外部…
类 Python是面向对象的语言,面向对象最重要的三个优点有: 多态:多态使对象具备不同的行为方式.(可以认为声明了接口,但是实现方式可能多样) 封装:封装是对全局作用域中隐藏多余信息的原则(创建对象,隐藏属性,不用担心对全局产生影响,也不用担心全局影响对象属性) 继承:继承使得代码可以复用,而且使得类之间有超类和子类的概念 创建类 类的可见级别在类中分别定义了一个公共的方法greet,保护方法_protectmethod,私有方法__privatemethod.如同通过Tab键进行函数定义控制…
这篇文章讲解Java代码的基本执行过程 我们先抛开各种JAVA IDE,开发工具,只使用文本编辑器,以突出最本质的东西. 在Linux环境下,我们编辑一个文件: vim HelloWorld.java 编辑如下代码: public class HelloWorld{ String name; public HelloWorld(String name){ this.name = name; } public void pHelloWorld(){ System.out.print("HellWo…
抽象类和抽象方法 抽象方法是指没有具体实现的方法,仅仅有方法的声明和没有方法体:使用abstract关键字定义一个抽象方法:包含抽象方法的类成为抽象类,如果一个类中包含抽象方法则必须使用abstract来限定该类为抽象类:抽象类不能实例化对象,抽象类的子类必须对所有的抽象方法提供方法定义,否则仍然是抽象类,且必须用abstract来限定: 接口 接口是一个完全抽象的类,没有提供任何具体的实现,只提供了具体的方法形式(方法名.参数列表.返回值):由于类是通过接口和外部通信,接口被用来建立类和类之间…
在上一节的学习中,强调继承一般在需要向上转型时才有必要上场,否则都应该谨慎使用: 向上转型和绑定 向上转型是指子类向基类转型,由于子类拥有基类中的所有接口,所以向上转型的过程是安全无损的,所有对基类进行的操作都可以同样作用于子类:如示例代码中,Music.tune方法调用时,需要的参数是基类Instrument,而传入一个子类:Wind类的对象时,该方法一样可以被调用,并且play方法执行的是Wind类的对象重载的方法: 在向上转型的设计中,只编写和基类打交道的代码,这样所有的特定子类都可以正确…
不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权限修饰符,默认访问, 类,方法,成员变量 private 权限修饰符,私有访问, 方法,成员变量 static 静态修饰符 方法,成员变量 final 最终修饰符 类,方法,成员变量,局部变量 abstract 抽象修饰符 类 ,方法 我们编写程序时,权限修饰符一般放于所有修饰符之前,不同的权限修饰…
一.初探Configuration类 我们先来看一下MyBatis的XML配置文件的结构,(摘自mybatis.org) 下面这个是Configuration类的部分变量 一点不一样是不是??? 其实Configuration类是由XMLConfigBuilder(继承自BaseBuilder类)解析而来的,由如下方法(parseConfiguration)解析 private void parseConfiguration(XNode root) { try { Properties sett…
这一节我们来看一下类与对象之间的关系. 我们学习java语言,目的就是用java语言对现实生活中的事物进行描写叙述.那么我们如何来描写叙述呢.这就引出了类,我们在实际实现时,是通过类的形式来体现的. 那么对于现实生活中的事物怎样描写叙述呢? 我们在现实生活中对于事物描写叙述通常仅仅关注两个方面,一个是属性,还有一个就是行为. 那么非常自然.计算机的描写叙述就产生出详细的对象. 比方我们要描写叙述一个小汽车.那么我们要怎么描写叙述呢?通过上面关注两个方面,我们非常轻松的从两个方面进行下面描写叙述:…
object类 java中objec是所有类公共的父类,一个类只要没有明显的继承某一类,那么它就是继承object类. 例如 class Person {......};和class Person extends Object{......}是一样的.如果我们的Studdent继承了Person类,继承结构就应该是 这时大家可能会想,为什么要默认继承object类,把objec类作为公共的父类有什么用? object类作为公共的父类,那么所有的子类都可以调用Object类中的方法. 下列结束两个…
标题 Bootstrap 中定义了所有的 HTML 标题(h1 到 h6)的样式,这个和一般的html没啥区别.请看下面的实例: <h1>测试1 h1</h1> <h2>测试2 h2</h2> <h3>测试3 h3</h3> <h4>测试4 h4</h4> <h5>测试5 h5</h5> <h6>测试6 h6</h6> 内联子标题 如果需要向任何标题添加一个内联子…
1.  从结构上划分 Swing 组件类分为两种,一种是JComponent类,一种是Windows类.其中windows类包含的是一些可以独立显示的组件,而JComponent类包含的是不可以独立显示的组件. 什么是可独立显示的组件和不可独立显示的组件? 可独立显示的组件:当运行一个程序时,可独立显示的组件无需在其他组件上即可显示,即它可以直接显示出来,例如JFrame类. 不可独立显示的组件:运行时,必须依靠可独立显示的组件才能将其显示出来,如JLabel类,JButton类,得托付在类似于…
可以创建几个对象? n多个:大部分的类,都可以随意创建对象,只要内存不爆掉 1个:比如单例类 有限的几个:采用单例类的设计思路,可以只允许创建少数的几个特定的对象:还有就是枚举类. 创建少数几个对象,不用枚举类实现 package testpack; public class Test1{ public static void main(String[] args) { Season s=Season.getSeason("秋天"); System.out.println(s.getN…
opnCV  学习博客http://blog.csdn.net/thefutureisour/article/details/7472104 1 OpneCV中的数据共享机制 OpenCV是一个很不错的开源计算机视觉库.我自己已经玩了一段时间了,决定把一些学习成果整理出来,分享给大家.学习OpenCV最好的助手当 然是opencv自带的手册和教程了.手册是英文版的,方便查找函数.教程有部分是中文版的,也有一部分没有汉化.可以通过网址:http://www.opencv.org.cn/opencv…
一.String类一般字符串 声明字符串 >>String str 创建字符串 >>String(char a[])方法用于将一个字符数组创建为String对象 >>String(char a[],int offset,int length)方法用于提取字符数组a中的一部分创建一个字符串对象,参数offset表示开始截取字符串的位置,length表示截取字符串的长度 >>String(char a[] value)方法可用于分配一个新的String对象,使其…
HTML <div> 和 <span> 可以通过<div>和<span>将HTML元素组合起来. HTML块元素 大多数HTML元素被定义为块级元素或者内敛元素 块级元素在浏览器现实的额时候,通常会以新行来开始(和结束) 例子:<h1>,<p>,<ul>,<table>等. HTML 内敛元素 内敛元素在显示的时候通常不会以新行开始 例子:<b>,<td>,<a>,<i…
字面值常量类:数据成员都是字面值类型的聚合类是字面值常量类.如果一个类不是聚合类,但是它符合一下要求,则它也是个字面值常量类: 1.数据成员都必须是字面值类型. 2.类必须至少含有一个constexpr构造函数. 3.如果一个数据成员含有类内初始值,则内置类型成员的初始值必须是一条常量表达式:或者如果成员属于某种类型,则初始值必须使用成员自己的 constexpr构造函数. constexpr构造函数: 1.尽管构造函数不能是const的,但是字面值常量类的构造函数可以是constexpr函数.…
Guava 提供了一系列针对Object操作的方法. 1. toString方法 为了方便调试重写toString()方法是很有必要的,但写起来比较无聊,不管如何,Objects类提供了toStringHelper方法,它用起来非常简单,我们可以看下面的代码: public class Book implements Comparable<Book> { private Person author; private String title; private String publisher;…