linkin大话面向对象--包和导入】的更多相关文章

我们现在的代码都扔在一个文件夹里面,比如以后我们做项目,是不是有可能有非常非常多的代码,那我就希望把不同功能和模块的类方便管理,放到不同的文件夹下,引出包概念. 什么是包,就一个文件目录,为了处理重名问题,解决类的命名冲突,类文件管理等问题.包名的书写:全用小写字母,避免使用与系统发生冲突的名字,如不能定义java.lang.java.swing等.java规定,位于包中的类,在文件系统中也必须有与包名层次相同的目录结构.很多初学者以为只要把生成的class文件放在某个目录下,这个目录名就成了这…
GC java的垃圾回机制是java语言的重要机制之一.当程序创建对象,数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存区中.当这块内存不再被任何变量引用时,这块内存就变成了垃圾,等待系统自动回收.一个对象在堆内存中运行,一共有3中状态:激活状态,去活状态,死亡状态. 值得注意的是:1,垃圾回收机制只负责回收堆内存中的对象,不会回收任何的物理资源(比如数据库连接) 2,程序无法精确的控制垃圾回收的运行,垃圾回收总是在合适的时候来进行. 3,垃圾回收机制在回收任何对…
我们每天在撸码,那么我们在敲什么东西呢?明显的我们在写类,写一个类,写一个接口,写某个接口里面写一些属性,在某个类里面写一个方法,然后以一个对象调用方法,对于j2ee来讲的话,可能还会写一些jsp,静态的html,还有不可避免的被大家一直诟病的xml配置文件.具体的java语言规范,以后我会专门做整理,在这里我只关注java面向对象. 要说面向对象,核心就是两个东西:类和对象 . 那么什么是类?自定义数据类型,类是某一批对象的抽象,所有的类都是引用数据类型. 什么是对象?具体存在的实体 . 2者…
  先来理解2个概念:闭包和回调   什么是闭包? 闭包是一个可调用的对象,它记录了一些信息,这些信息来自于创建他的作用域.通过这个定义,可以看出内部类是面向对象的闭包,因为他不仅包含了外部类对象的信息,还自动拥有一个指向外部类对象的引用,在此作用域里,内部类有权操作所有的成员,包括外部类的private修饰的成员.   什么是回调? 回调就是对象携带一些信息,这些信息允许它在稍后的某个时刻调用初始化的对象.说白了就是说:某个方法一旦获得了内部类对象的引用,就可以在合适的时候反过来调用外部类实例…
内部类说白了就是类中有类 内部类:嵌套类 外部类:宿主类 内部类主要有以下作用:记住了3个字:多继承... 1,内部类提供了更好的封装,可以把内部类隐藏在外部类中,不允许同一个包中的其他类访问该类. 2,内部类可以访问外部类的私有数据,外部类不能访问内部类的实现细节,比如字段. 3,匿名内部类适合用于那些仅需要一次使用的类.比如在命令模式中,当需要传入一个Command对象时,使用匿名内部类将更加方便. 内部类分类,主要有下面4种: 非静态内部类:静态内部类:局部内部类:匿名内部类 非静态内部类…
Java提倡的万物皆对象,但是数据类型的划分出现了基本数据类型和引用数据类型,那么我们怎么能把基本数据类型称为对象呢? 基本数据类型 包装类 byte Byte short Short int Integer long Long char Character float Float double Double boolean Boolean 除了Integer和Character定义的名称和对应的基本类型差异大,其他六种都是将首字母大写就可以了. Integer,Byte,Float,Doubl…
java引用变量有2个类型,一个是编译时类型,一个是运行时类型: 编译时类型:声明的类型,把它看做是什么东西 运行时类型:真正的类型,实际上指的是什么东西 如果编译时类型和运行时类型不同,就出现多态.相同类型的变量,调用同一个方法时呈现出多种不同的行为特征,这就是多态. 注意这个定义里面的关键字:方法.和方法不同,对象的属性不具备多态性. 编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给变量的对象决定.记住下面一句话就好:编译决定类型,运行绑定对象 当一个引用类型的变量若声明为父…
枚举类(enum) 其实我们使用到枚举的地方还是很多的,其实我们可以完全人工的来实现枚举的功能.比如说我现在手里的项目我就是自己实现的枚举,说白了,枚举就是一个类的多例模式. 1,使用enum声明,默认直接继承了java.lang.Enum类,而不是Object类: 2,枚举类的对象是固定的,实例个数有限,枚举对象后可以跟():跟着()的意思就是在调用相关的构造器,要是不写的话就是在调用默认的构造器. 3,枚举元素必须位于枚举类体中的最开始部分,枚举元素后要有分号与其他成员分隔: 4,枚举类的构…
java中的关键字有以下几个,他们不能作任何其它的用途. 发现没,java中的关键字全是小写,java是严格区分大小写的. abstract  default  null  synchronized  boolean  do  if  package  this  break  double  implements  private  threadsafe  byte  else  import  protected  throw  extends  instanceof    case  fa…
java使用构造器来对单个对象进行初始化操作,使用构造器先完成整个java对象的状态初始化,然后将java对象返回给程序,从而让整个java对象的信息更加完整.与构造器作用非常类似的是初始化块,它也可以对java对象进行初始化操作. 初始化块是构造器的补充,初始化块总是在构造器执行之前执行. 初始化块的基本用法:如果有一段初始化处理代码对所有的对象完全相同,且无需接受任何参数,就可以把这段代码提取到初始化块中. 如果初始化块使用了static修饰,就变成了类初始化块.类初始化块总是比普通初始化先…
继承是实现类重用的重要手段,但是它有一个最大的坏处:破坏封装.相比之下,组合也是实现类重用的重要方式,但是采用组合方式实现类重用则能提供更好的封装性.比如人有手一样,在人的类中增加一个手的属性. 何时使用继承呢: 1,子类需要增加额外的属性,不仅仅是属性值的改变 2,子类需要增加自己独有的行为方式 为了保证父类有良好的封装性,不会被子类随意改变,设计父类通常应该遵循以下规则: 1,尽量隐藏父类的内部数据.尽量把父类的所有属性都设置成private访问类型,不要让子类直接访问父类的属性 2,不要让…
[修饰符] class SubClass extends SuperClass    按照这种关系,我们把SuperClass类称为父类或基类,把SubClass称为子类或派生类或拓展类.extends在英语中是扩展的意思,而不是继承.这 个关键字很好的体现了子类和父类的关系:子类是对父类的扩展,子类是一种特殊的父类.子类扩展了父类,将可以获得父类中所有的属性和方法,但是特别注意的是:java中的子类不能获得父类的构造 器.java.lang.Object是所有类的父类,Object要么是直接父…
   对象的产生格式:类名称  对象名 = new  类名称(); 因为有(),所以是方法,实际上它就是构造方法,并且是非私有的构造方法.如:CellPhone cp = new CellPhone(); 构造器是一个特殊的方法,这个特殊方法用于创建实例时执行初始化.构造器是创建对象的重要途径,即使使用工厂模式,反射等方式创建对象,其实质依然是依赖于构造器,因此,java类必须包含一个或者一个以上的构造器.一旦自己显示的写了构造方法,那么java就不再为我们提供那个隐式的无参构造方法了. 特点:…
软件开发追求的境界:高内聚,低耦合 高内聚:尽可能把模块的内部数据,功能实现细节隐藏在模块内部独立完成,不允许外部直接干预 低耦合:仅暴露少量的方法给外部使用 到底为什么要对一个雷或者对象实现良好的封装,可以实现以下目的: 1,隐藏类的实现细节 2,让使用者只能通过实现预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对属性的不合理访问 3,还可以进行数据检查,有利于保证对象信息的完整性 4,便于修改,提高代码的可维护性 为了实现良好的封装,需要从2个方面来考虑 1,把对象的属性和实现细…
成员变量和局部变量 成员变量: 1.在一个类中,任何方法之外定义的变量:     2.从面向对象的思想来说我们又把实例变量看成一个类的属性.     3.实例变量在没有符初值时系统会自动帮我们做初始化: 整型数据初始化为 0,布尔型数据初始化为 false,对象类型初始化为 null.    实例变量的作用域在本类中完全有效,当被其他的类调用的时候也可能有效. 局部变量: 1.在方法内定义的变量叫局部变量.     2.局部变量使用前必须初始化,系统不会自动给局部变量做初始化.     3.局部…
1,方法的参数传递机制:值传递. 首先弄懂2个概念:形参和实参. 形参(形式参数):相当于函数(Java中也把函数称之为方法)中的局部变量,在函数被调用时创建,并以传入的实参作为起始值,函数调用结束时被释放.不会影响主程序中其他的变量(即使有变量跟他们同名),因为他们是不同作用域的变量,互不干扰.实参:调用函数时,实际传给函数形式参数的数据. 不管是基本类型的参数传递,还是引用类型的参数传递,统统采用的是值传递方式.有点区别的是引用类型的参数传递,实际上传递的是一个引用.记住下面一句话,就可以很…
接口(interface)的概念,掌握接口很重要,以后所有的编程都要面向接口编程.其实接口的内涵就7个字:规范和实现分离. 抽象类是从多个类中抽象出来的模板,若要将这种抽象进行得更彻底,就得用到一种特殊的"抽象类":接口. 生活中听说过的USB接口其实并不是我们所看到的那些插槽,而是那些插槽所遵循的一种规范;而我们看到的那些插槽是根据USB规范设计出来的实例而已,也就说插槽是USB的实例;对应不同型号的USB设备而言,他们各自的USB插槽都需要遵循一个规范,遵守这个规范就可以保证插入插…
abstract [非private访问修饰符] 返回值类型 方法名称(参数列表); 当编写一个类时,我们往往会为该类定义一些方法,这些方法时用来描述该类的行为方式,那么这些方法都有具体的方法体. 但是有的时候,某个父类只是知道子类应该包含怎么样的方法,但是无法准确知道子类如何实现这些方法. 比如一个图形类应该有一个求周长的方法,但是不同的图形求周长的算法不一样.那该怎么办呢? 所有的图形都有求面积的方法,不管你是正方形,矩形,圆形无所谓,他们都是图形,所以我们应该抽象一个图形这个父类.第一种做…
1.什么是Spring : v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 /* Style De…
   Java面向对象  包 知识概要:              (1)包的概念 (2)包的命名 (3)编译执行 (4)导入 (5)包的访问权限 包:   包(package)用于将完成不同功能的类分类,放在不同的目录(包)下 包的命名规则: 将公司域名反转作为包名.例如  cn.itheima.day1;... 包名一般每个字母都要小写. 把类定义在某个包下面,一般在源文件开头加上package xxx.yyy: 则类的全名是xxx.yyy.类名 如果定义类的时候没有使用package指…
linkin大话设计模式--常用模式总结 一,常用设计模式定义 Abstract Factory(抽象工厂模式):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. Adapter(适配器模式):将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. Bridge(桥接模式):将抽象部分与它的实现部分分离,使它们都可以独立地变化. Builder(建造者模式):将一个复杂对象的构建与它的表示分离,使得同样的构建过…
JAVA面向对象-–包机制 问题: 当定义了多个类的时候,可能会发生类名的重复问题. 在java中采用包机制处理开发者定义的类名冲突问题. 怎么使用java的包机制呢? 1.使用package 关键字. 2.package 包名. 问题: 1.javac PackDemo1.java编译没有问题. 2.java PackDemo1 运行出错. 错误原因分析: 在当前目录下找不到有pack目录,更加找不到pack目录下面的PackageDemo1.java文件. 解决办法: 1.自己在当前目录下新…
1. 模块与包的区别 模块,即module,一个包含python语句的.py文件就是一个模块!每个源代码文件都会自动成为模块!没有额外的语法用来声明模块. 包,又称模块包,即module package,是一个目录,该目录中包含.py文件,其中必须有一个__init__.py文件,该文件用于声明和初始化模块包.第一次在进程中导入某个目录(包)时,python会自动运行__init__.py文件中的代码.该目录会在内存中创建一个模块对象,__init__.py中赋值的变量则会变成该模块对象的属性.…
模块导入的方式: 模块的概念:一个.py文件就称为一个模块 导入模块中函数的方式: 方式一:import  模块名 使用时:模块名.函数名() 方式二 :from 模块名 import  函数名 使用时:函数名() 方式三: from 模块名 import * 使用时:函数名() 方式四:from 模块名 import 函数名 as  tt(自定义)     注意原来的函数名将失效 使用时:tt() 可以在模块当中定义一个变量__all__: 使用__all__的影响:  后面的[]里面写什么函…
一.模块导入 1.定义 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代码段. 把相关的代码分配到一个模块里能让你的代码更好用,更易懂. 模块能定义函数,类和变量,模块里也能包含可执行的代码. 包括:内置模块,自定义模块,第三方模块: 2.作用 最大的好处是大大提高了代码的可维护性.其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.我们在编写程序…
linkin大话设计模式 开文前先弱弱的问一句:什么是设计模式?我在研究java2ee的时候有研究过,在学js的时候也有看到.设计模式的概念最早源于建筑设计大师<建筑的永恒算法>一书,它表示一个特定的环境,一类问题和一个解决方案之间的关系.对于软件领域,设计模式就是对处于特定的环境下,经常出现的某类软件开发问题的,一种相对成熟的设计方案. 设计模式(Design pattern)是一套被反复使用,多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人…
linkin大话设计模式--适配器模式 大家知道,在java中只允许单继承,但是在实际问题中往往都需要多继承,java引入了接口这一概念.(一个类可以实现多个接口) 由于接口中都是抽象方法,那么我们在实现它的时候就必须全部覆写这些方法.假如我有一个类,这个类只想覆写一部份方法怎么办?   在接口与这个类中间可以加一个抽象类: 抽象类去覆写接口中的全部方法,而那个类去继承这个抽象类,根据需要覆写抽象类中的方法.(简单的适配器模式) 代码如下:   public class AbstractTest…
linkin大话设计模式--建造模式 建造模式是对象的创建模式,可以讲一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象. 建造模式的结构: 抽象建造者角色(Builder):给出一个抽象的接口,用来规范产品对象的各个组成成分的建造. 具体建造者角色(ConcreteBuilder): 1.实现抽象建造者所申明的接口,给出一步一步地完成创建产品实例的操作. 2.在建造过程完成后,提供产品的实例. 导演者角色(Director):用来调用具体建造者以…
linkin大话设计模式--模板方法模式 准备一个抽象类,将部分逻辑以具体方法的形式实现,然后申明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现.抽象模板角色: 1.定义了一个或多个抽象操作,以便让子类实现. 2.定义并实现了一个模板方法. 具体模板角色: 1.实现父类所定义的一个或多个抽象方法. 2.每一个抽象模板角色都可以有任意多个具体模板角色与之对应,而每一个具体模板角色都可以给出这些抽象方法的不同实现. 代码如下: //模板…
linkin大话设计模式--观察者模式 观察者模式定义了对象间的一对多依赖关系,让一个或者多个观察者观察一个对象主题.当主题对象的状态发生改变的时候,系统能通知所有的依赖于此对象的观察者对象,从而能自动更新. 在观察者模式中,被观察的对象常常也被称为目标和主题,依赖的对象被称为观察者. 代码如下: <strong><span style="font-size:14px;">import java.util.ArrayList; import java.util.…