原 因: 一个servlet在它的init()方法中传递它的ServletConfig实例,在其他的方法中却不可以.当一个servlet在 init()方法外需要调用config对象时就会产生问题.使用super.init(config)语句就解决了这个问题,该语句通过唤醒 GenericServlet的init()方法, 该方法保存了这个config对象的一个引用,以备将来使用.那么,一个servlet是怎样利用这个保存的引用的呢?是通过自身唤醒方法.在执行 中,GenericServlet类…
容器创建了Servlet实例后,它将调用实例的init(ServletConfig)方法初始化Servlet.该方法的参数ServletConfig对象包含了在WEB应用程序的部署描述文件中指定的初始化参数.在init(ServletConfig)调用完后,容器将调用init() 方法,之后Servlet就被初始化了.   两者不同定义: void init(ServletConfig config)  throws ServletException  public void init() th…
Objective-C的推荐init方法写法如下: - (id) init { if(self = [super init]) { //为子类增加属性进行初始化 } return self; } 这里涉及了几个问题, 1. [super init]的作用: 面向对象的体现,先利用父类的init方法为子类实例的父类部分属性初始化. 2. self 为什么要赋值为[super init]: 简单来说是为了防止父类的初始化方法release掉了self指向的空间并重新alloc了一块空间.这时的话,[…
A.id 万能指针,可以指向任何对象,实质是NSObject的指针,使用的时候不用加上*   B.NSObject中得类方法new 1.完整地创建一个可用对象步骤 (1)分配存储空间 + alloc (2)初始化 - init // 1.调用+alloc分配存储空间 Person *p1 = [Person alloc]; // 2.调用-init进行初始化 Person *p2 = [p1 init]; // 同时进行分配存储空间和初始化 Person *p3 = [[Person alloc…
Objective-C的推荐init方法写法如下: - (id) init { if(self = [super init]) { //为子类增加属性进行初始化 } return self; } 返回值为id类型,id类型可以赋值给其他类型指针,其他类型指针也可以赋值给id类型 obc中子类指针不能直接赋值给父类指针 [super init]也是返回self,再不改变self所指向对象的情况下,这个self跟子类的self是一样的,因为转化为消息调用时传入的Receiver都一样 如果在父类中改…
01_5_SERVLET为什么有2个init方法 1. 在web.xml配置初始化参数 <servlet> <servlet-name>TestInitServlet</servlet-name> <servlet-class>TestInitServlet</servlet-class> <init-param> <param-name>language</param-name> <param-valu…
package gz.itcast.d_init; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; /** * 有参数的init和无参的init方法 * @author APPle * */ public class InitDemo extends HttpServlet { /** * 有参数的init方法 * 该…
在创建一个对象的时候我们经常会用到init方法,单单是init只能是初始化,当我们在初始化的时候想要给这个对象加上默认的东西的时候, 系统提供的init方法就不能满足我们的需要,这时,就需要我们自己去重写init方法: 通常在使用init方法的时候,系统先会在自己这个类中查询是否实现(重写)这个方法,如果没有实现,就会逐层向上面的父类查找,直到 找到实现了的init方法,其他方法的执行顺序也是这样. 1.首先创建一个Person 类和一个Car 类 2.在Car类里面定义属性(我们要的效果是输出…
当重新覆盖父类的init方法时,需要调用[super init]方法确认父类中的init是返回一个实例,而不是一个空的实例. 那为什么要调用这个呢? 我得猜测是这样的:因为这是一个初始化方法,需要对对象实例进行初始化,当你覆盖父类的初始化方法时,编辑器就会优先使用你的方法而不再理会父类的初始化方法,这样就会造成你的初始化方法无法完整的对对象实例进行初始化. 其他人的解释是这样的: 1. [super init]的作用: 面向对象的体现,先利用父类的init方法为子类实例的父类部分属性初始化. 2…