- 浏览: 173984 次
- 性别:
- 来自: 成都
-
文章分类
最新评论
-
gwill_21:
dwr.xml找不到怎么办,难道要自己手写dwr.xml?痛苦 ...
DWR框架 —— 用户注册验证 -
recoba7:
MLDN魔乐科技 Oracle学习笔记 (5) -
lanni2460:
呵呵 尽管现在才看到这个 但是我真的觉得 李老师 讲的很好呢 ...
严重声明,那些恶意诋毁MLDN及李兴华老师的其他培训机构统统走开 -
chian_xxp:
只要把功能实现了,代码结构合理了,代码性能提高了,该注意的注意 ...
业务、业务、业务。。。 -
wzpbb:
密码多少啊??? 给一下啊
MLDN 魔乐科技 Oracle 学习笔记(2)
今天所讲的知识点
A 面向对象的第二特点:继承
B 子类:(实例化过程、覆写父类的方法、覆写父类的属性)
C final关键字
D 抽象类(abstract)和抽象方法
E 接口(interface)
F 面向对象的第三特点:多态性
G instanceof关键字
H Object类
I super关键字和this关键字的区别
我对知识点的分析
A 一、继承的概念
首先,回忆一下,面向对象的第一个特征是封装,即把一个类的属性和部分方法进行私有化,即封装保护起来。
当一个类的属性方法只是需要在另一个类的基础上进行扩展设计即可的时候就可以采用继承的手法,这样被继承的类叫父类或者叫做超类,而继承别人的类叫做子类或者派生类。
二、继承的特点
1、在JAVA中的继承和生活中的继承的区别在于,在JAVA中的继承是在原有基础上扩展,即没有“败家子”;
2、在java中所有的继承只是子类继承了父类中的公共操作。
更具体的来讲,是直接继承了所有的操作,只是非私有的操作是直接继承的,而私有的操作是隐含继承的(隐含继承是指通过间接的方式继承私有属性和操作,例如私有属性的继承通过继承的setter和getter方法间接访问私有属性)。
3、关于类的继承有一个限制:一个子类只能继承自一个父类,所以在Java中不支持多重继承
4、但是在Java中允许多层继承,即:一个子类可以有一个父类,一个父类还可以有其自己的父类。
5、能采用“super.”使用父类的方法、属性的尽量使用,而不要采用完全重写相同的代码
三、子类继承父类的格式
class 子类 extends 父类{}
B 一、子类的实例化过程
一个继承的子类进行实例化操作的时候,首先会先让其父类进行实例化操作,然后进行自己的实例化操作。
说明:
(1)在进行子类对象的实例化之前首先会默认调用父类中的无参构造方法,为父类中的属性进行初始化操作,之后再调用子类自己的构造方法完成子类的初始化操作;
(2)当然在子类的构造方法中可以用过super关键字指明需要调用的是那个构造方法;
(3)如果要用“super(【参数】);”语句调用父类的构造方法时,必须放在该构造方法的首行;
(4)如果没有写任何的super语句,则在子类的构造方法中的第一行默认隐含了一个“super();”
(5)如果父类没有无参构造函数(即所有构造函数都显式定义为有参的),那么在子类的构造方法中必须用“super(参数);”显式的调用父类的某个构造方法;
二、方法的覆写
在子类中声明了与父类中同名且参数个数及参数类型一致的方法,称为方法的覆写。
注意:
(1)在进行方法的覆写时必须注意被覆写的方法不能拥有比父类更严格的访问权限。
访问权限严格的关系:public > default(默认) > private
(2)必须记住的一个原则:“在使用子类对象操作的时候,调用的方法永远是被子类覆写过的方法。”
(3)如果想在子类中调用被覆写的父类的方法,则需要用“super.方法()”;
(4)如果想要覆写父类中的私有方法,那么在子类中对该方法覆写后,必须连同调用该私有方法的其他方法也一起覆写,这样的覆写才起到作用。(这点结论的分析见问题及分析解决方法A)
(5)覆写的方法必须与父类的方法返回值类型一致,否则会报错
例如:
ReWriteMethod.java:27: print() in B cannot override print() in A; attempting to
use incompatible return type
found : java.lang.String
required: void
public String print(){ //(aa:)
^
1 error
在此需要区分方法的覆写与方法的重载的概念:
方法的重载及覆写的比较
No. 比较点 重载 覆写
1 定义 方法名称相同,参数的类型或个数不同 方法名称、参数的类型和个数完全相同
2 注意点 ----- 访问权限不能更加严格
与返回值无关 返回值必须一致
3 范围 发生在一个类中 发生在继承关系中
三、属性的覆写(了解)
在子类中声明了与父类中同名但数据类型不一致的属性,称为属性的覆写。
C 在Java中可以使用final关键字完成以下的操作:
• 使用final关键字声明一个类,这个类不能有子类,即“不能有下一代的类”
• 使用final关键字声明一个方法,这个方法不能被子类覆写,即“不可替代的方法”
• 使用final关键字声明一个常量,常量即表示不可修改
例如:
final class A{
};
class B extends A{
};
报错信息:
ReWriteMethod.java:24: cannot inherit from final A
class B extends A{
^
1 error
-----------------------------------------------------------------------------------------------------------
class A{
public final void fun(){}
};
class B extends A{
public void fun(){} // 不能被覆写
};
报错信息:
ReWriteMethod.java:26: fun() in B cannot override fun() in A; overridden method
is final
public void fun(){} // 不能被覆写
^
1 error
--------------------------------------------------------------------------------------------
class A{
public final String INFO = "MLDN" ;
public void fun(){
INFO = "world" ;
System.out.println(INFO) ;
}
};
报错:
ReWriteMethod.java:25: cannot assign a value to final variable INFO
INFO = "world" ;
^
1 error
关于常量的补充提示:
1、 常量的命名规则是全部字母大写:INFO
2、 使用public static final声明的常量称为全局常量。public static final String INFO = "MLDN" ;
D 抽象类(abstract)和抽象方法
一、概念
用abstract关键字声明的类为抽象类。
在抽象类或者接口中只声明而未实现的方法称为抽象方法,在抽象类中抽象方法必须使用abstract关键字声明,而在接口中可以省略,因为接口中的方法只能是抽象方法。
二、特点
1、抽象类不能直接实例化
2、一个抽象类必须被子类所继承,且被继承的子类(如果不是抽象类)则必须覆写抽象类中的全部抽象方法
3、抽象类不能使用final关键字修饰,因为用final声明的类不能被继承,而抽象类确必须被继承;
4、虽然抽象类不能直接被实例化,但抽象类可以有构造方法,而且子类对象实例化的时候的流程与普通类的继承是一样的,都是要先调用父类中的构造方法(默认是无参的),之后再调用子类自己的构造方法,如果要想调用抽象类中有参的构造方法必须在子类的构造方法的第一行使用“super.(参数)”来调用。所以抽象类的对象是通过子类间接实例化的。
三、总结
1、抽象类就是普通类的一个扩展,只是实例化被受到了限制,然后在普通类的基础之上加上了抽象方法而已,除此之外与普通类是完全一致的。
2、抽象类完成的是一个模板的功能。
四、抽象类和抽象方法的定义方法
抽象类的定义方法即在class的前面加上abstract关键字
抽象方法的定义方法即在返回值类型前面加上abstract关键字,并且只是声明方法,没有具体的实现语句,即无方法的“{}”实现部分
E 接口(interface)
一、概念
如果一个类中的全部方法都是抽象方法,全部属性都是全局常量,那么就可以将这个类定义成一个接口。
接口的定义格式:
interface 接口名称{
全局常量 ; //public static final 数据类型 全局常量名;
抽象方法 ; //public abstract 返回值类型 方法名(【参数列表】);
}
例如:
二、特点
(1)接口中的所有方法的访问权限都是public;
(2)接口本身都是由全局常量和抽象方法组成,所以在属性的声明部分可以省略“public static final”关键字的修饰,而抽象方法的声明部分可以省略“public abstract”关键字,而一般习惯上都只省略“abstract”;
(3)接口必须通过子类才能实现,而一个子类可以同时继承多个接口,子类继承接口采用如下的语法格式: class 子类 implements 父接口1,父接口2….;
那么子类需要实现继承的所有接口的抽象方法
(4)一个抽象类可以继承一个或者多个接口,而一个接口不能继承一个抽象类;
(5)如果一个类即要实现接口,又要继承抽象类的话,则按照以下的格式编写即可:
class 子类 extends 父类 implements 父接口1,父接口2,…{}
那么此时,就要求此子类实现抽象类及全部接口的抽象方法
(6)一个接口可以继承一个或者多个接口,那么此时,就要求此接口的子类要实现全部接口的抽象方法
(7)接口的主要作用在于定义标准。
F 面向对象的第三特点:多态性
对象多态性分为两种:一种属于方法的重载与覆写,另外一种就是对象多态性。
对象多态性,是从子类和父类对象类型的相互转换而来的:
• 向上转型:将子类实例变为父类实例
|- 格式:父类 父类对象 = 子类实例 ; 自动完成
|- 以基本数据类型操作为例:int i = 'c' ; 因为c的容量比int小,所以可以自动完成
|- 向上转型可以自动完成,完成之后调用的方法是被子类覆写过的方法。
• 向下转型:将父类实例变为子类实例
|- 格式:子类 子类对象 = (子类)父类实例 ; 强制完成
|- 以基本数据类型操作为例:char c = (char)98 ; 因为整型的容量比char大,所以强制完成
注意:在相互转型的时候,一定要注意类型的匹配,否则会报ClassCastException: A cannot be cast to B的异常,即两个没有任何关系的对象是不能进行相互的转型操作;
如果一个对象要想进行向下转型之前,必须之前发生过向上转型操作。只有这样才能建立关系。
G instanceof关键字
如果要想判断某个对象是否是指定类的实例,则可以使用instanceof关键字完成。
判断的语法格式如下:
实例化对象 instanceof 类 此操作返回boolean类型的数据
H Object类
Object类是所有类的父类,如果一个类没有明确的继承某一个具体的类,则将默认继承Object类。
Object类中的三个重要方法:
• 得到对象信息:public String toString()
• 进行对象比较:public boolean equals(Object obj)
• 得到对象的hash码:public int hashCode()
1、在对象打印的时候将默认调用toString()方法,但是这样调用toString()方法的返回信息并不明确,如果希望返回一个具体类的信息,则必须在子类中覆写toString()方法。
2、如果一个类需要进行对象比较,那么就可以覆写equals()方法
3、使用Object可以接收任意的引用数据类型
4、可变参数中如果使用了Object作为类型,则任何类型都可以接收
I super关键字和this关键字的区别
this与super的比较
No. 比较点 this super
1 属性 调用本类中的属性,如果本类中没有此属性,将从父类中继续查找 直接表示调用的属性是父类中的属性
2 方法 调用本类中的方法 调用父类中的方法,一般在方法被覆写之后
3 构造 调用本类中的其他构造方法 调用父类中的其他构造方法
4 使用 必须放在构造方法的首行 必须放在子类构造方法的首行
this和super无法同时出现,但是在类中至少有一个构造方法是没有使用this()调用的,那么这个构造方法一般都会去使用super调用父类中的构造方法
5 特殊点 表示当前对象 无此概念
J
今天的问题
A
解决方法:
一一验证
//1、父类中的方法为默认的,子类中的覆写方法是默认的或public,都能覆写成功
//2、父类中的方法为私有的,子类中的覆写方法是默认的或public或private,都不能覆写成功
//3、父类中的方法为私有的,子类中的覆写方法是私有的,
//但是覆写访问父类中的这个私有方法的方法,可以使得私有方法的覆写起作用
问题描述:
思考?
如果在父类中使用private关键字修饰了一个方法,子类中使用default或者public修饰方法,那么此方法是否称为覆写呢?
B class A{
public void print(){
System.out.println("父类中的方法");
}
}
class B extends A{
public String print(){
return "子类中的方法";
}
}
解决方法:方法覆写,返回值类型必须一致
报错:ReWriteMethod.java:27: print() in B cannot override print() in A; attempting to
use incompatible return type
found : java.lang.String
required: void
public String print(){ //(aa:)
^
1 error
今天再次看了mldn的课程介绍的时候,忽然对后面即将要学习那么多那么多的知识产生了害怕的心理,开始怀疑自己能不能学好?
我知道自己的学习弱点在于没有超强的毅力,所以这次连续高强度的4个月的学习是对我的极大挑战。
希望自己能坚持!!
坚持4个月,一切都会好转的!!
A 面向对象的第二特点:继承
B 子类:(实例化过程、覆写父类的方法、覆写父类的属性)
C final关键字
D 抽象类(abstract)和抽象方法
E 接口(interface)
F 面向对象的第三特点:多态性
G instanceof关键字
H Object类
I super关键字和this关键字的区别
我对知识点的分析
A 一、继承的概念
首先,回忆一下,面向对象的第一个特征是封装,即把一个类的属性和部分方法进行私有化,即封装保护起来。
当一个类的属性方法只是需要在另一个类的基础上进行扩展设计即可的时候就可以采用继承的手法,这样被继承的类叫父类或者叫做超类,而继承别人的类叫做子类或者派生类。
二、继承的特点
1、在JAVA中的继承和生活中的继承的区别在于,在JAVA中的继承是在原有基础上扩展,即没有“败家子”;
2、在java中所有的继承只是子类继承了父类中的公共操作。
更具体的来讲,是直接继承了所有的操作,只是非私有的操作是直接继承的,而私有的操作是隐含继承的(隐含继承是指通过间接的方式继承私有属性和操作,例如私有属性的继承通过继承的setter和getter方法间接访问私有属性)。
3、关于类的继承有一个限制:一个子类只能继承自一个父类,所以在Java中不支持多重继承
4、但是在Java中允许多层继承,即:一个子类可以有一个父类,一个父类还可以有其自己的父类。
5、能采用“super.”使用父类的方法、属性的尽量使用,而不要采用完全重写相同的代码
三、子类继承父类的格式
class 子类 extends 父类{}
B 一、子类的实例化过程
一个继承的子类进行实例化操作的时候,首先会先让其父类进行实例化操作,然后进行自己的实例化操作。
说明:
(1)在进行子类对象的实例化之前首先会默认调用父类中的无参构造方法,为父类中的属性进行初始化操作,之后再调用子类自己的构造方法完成子类的初始化操作;
(2)当然在子类的构造方法中可以用过super关键字指明需要调用的是那个构造方法;
(3)如果要用“super(【参数】);”语句调用父类的构造方法时,必须放在该构造方法的首行;
(4)如果没有写任何的super语句,则在子类的构造方法中的第一行默认隐含了一个“super();”
(5)如果父类没有无参构造函数(即所有构造函数都显式定义为有参的),那么在子类的构造方法中必须用“super(参数);”显式的调用父类的某个构造方法;
二、方法的覆写
在子类中声明了与父类中同名且参数个数及参数类型一致的方法,称为方法的覆写。
注意:
(1)在进行方法的覆写时必须注意被覆写的方法不能拥有比父类更严格的访问权限。
访问权限严格的关系:public > default(默认) > private
(2)必须记住的一个原则:“在使用子类对象操作的时候,调用的方法永远是被子类覆写过的方法。”
(3)如果想在子类中调用被覆写的父类的方法,则需要用“super.方法()”;
(4)如果想要覆写父类中的私有方法,那么在子类中对该方法覆写后,必须连同调用该私有方法的其他方法也一起覆写,这样的覆写才起到作用。(这点结论的分析见问题及分析解决方法A)
(5)覆写的方法必须与父类的方法返回值类型一致,否则会报错
例如:
ReWriteMethod.java:27: print() in B cannot override print() in A; attempting to
use incompatible return type
found : java.lang.String
required: void
public String print(){ //(aa:)
^
1 error
在此需要区分方法的覆写与方法的重载的概念:
方法的重载及覆写的比较
No. 比较点 重载 覆写
1 定义 方法名称相同,参数的类型或个数不同 方法名称、参数的类型和个数完全相同
2 注意点 ----- 访问权限不能更加严格
与返回值无关 返回值必须一致
3 范围 发生在一个类中 发生在继承关系中
三、属性的覆写(了解)
在子类中声明了与父类中同名但数据类型不一致的属性,称为属性的覆写。
C 在Java中可以使用final关键字完成以下的操作:
• 使用final关键字声明一个类,这个类不能有子类,即“不能有下一代的类”
• 使用final关键字声明一个方法,这个方法不能被子类覆写,即“不可替代的方法”
• 使用final关键字声明一个常量,常量即表示不可修改
例如:
final class A{
};
class B extends A{
};
报错信息:
ReWriteMethod.java:24: cannot inherit from final A
class B extends A{
^
1 error
-----------------------------------------------------------------------------------------------------------
class A{
public final void fun(){}
};
class B extends A{
public void fun(){} // 不能被覆写
};
报错信息:
ReWriteMethod.java:26: fun() in B cannot override fun() in A; overridden method
is final
public void fun(){} // 不能被覆写
^
1 error
--------------------------------------------------------------------------------------------
class A{
public final String INFO = "MLDN" ;
public void fun(){
INFO = "world" ;
System.out.println(INFO) ;
}
};
报错:
ReWriteMethod.java:25: cannot assign a value to final variable INFO
INFO = "world" ;
^
1 error
关于常量的补充提示:
1、 常量的命名规则是全部字母大写:INFO
2、 使用public static final声明的常量称为全局常量。public static final String INFO = "MLDN" ;
D 抽象类(abstract)和抽象方法
一、概念
用abstract关键字声明的类为抽象类。
在抽象类或者接口中只声明而未实现的方法称为抽象方法,在抽象类中抽象方法必须使用abstract关键字声明,而在接口中可以省略,因为接口中的方法只能是抽象方法。
二、特点
1、抽象类不能直接实例化
2、一个抽象类必须被子类所继承,且被继承的子类(如果不是抽象类)则必须覆写抽象类中的全部抽象方法
3、抽象类不能使用final关键字修饰,因为用final声明的类不能被继承,而抽象类确必须被继承;
4、虽然抽象类不能直接被实例化,但抽象类可以有构造方法,而且子类对象实例化的时候的流程与普通类的继承是一样的,都是要先调用父类中的构造方法(默认是无参的),之后再调用子类自己的构造方法,如果要想调用抽象类中有参的构造方法必须在子类的构造方法的第一行使用“super.(参数)”来调用。所以抽象类的对象是通过子类间接实例化的。
三、总结
1、抽象类就是普通类的一个扩展,只是实例化被受到了限制,然后在普通类的基础之上加上了抽象方法而已,除此之外与普通类是完全一致的。
2、抽象类完成的是一个模板的功能。
四、抽象类和抽象方法的定义方法
抽象类的定义方法即在class的前面加上abstract关键字
抽象方法的定义方法即在返回值类型前面加上abstract关键字,并且只是声明方法,没有具体的实现语句,即无方法的“{}”实现部分
E 接口(interface)
一、概念
如果一个类中的全部方法都是抽象方法,全部属性都是全局常量,那么就可以将这个类定义成一个接口。
接口的定义格式:
interface 接口名称{
全局常量 ; //public static final 数据类型 全局常量名;
抽象方法 ; //public abstract 返回值类型 方法名(【参数列表】);
}
例如:
二、特点
(1)接口中的所有方法的访问权限都是public;
(2)接口本身都是由全局常量和抽象方法组成,所以在属性的声明部分可以省略“public static final”关键字的修饰,而抽象方法的声明部分可以省略“public abstract”关键字,而一般习惯上都只省略“abstract”;
(3)接口必须通过子类才能实现,而一个子类可以同时继承多个接口,子类继承接口采用如下的语法格式: class 子类 implements 父接口1,父接口2….;
那么子类需要实现继承的所有接口的抽象方法
(4)一个抽象类可以继承一个或者多个接口,而一个接口不能继承一个抽象类;
(5)如果一个类即要实现接口,又要继承抽象类的话,则按照以下的格式编写即可:
class 子类 extends 父类 implements 父接口1,父接口2,…{}
那么此时,就要求此子类实现抽象类及全部接口的抽象方法
(6)一个接口可以继承一个或者多个接口,那么此时,就要求此接口的子类要实现全部接口的抽象方法
(7)接口的主要作用在于定义标准。
F 面向对象的第三特点:多态性
对象多态性分为两种:一种属于方法的重载与覆写,另外一种就是对象多态性。
对象多态性,是从子类和父类对象类型的相互转换而来的:
• 向上转型:将子类实例变为父类实例
|- 格式:父类 父类对象 = 子类实例 ; 自动完成
|- 以基本数据类型操作为例:int i = 'c' ; 因为c的容量比int小,所以可以自动完成
|- 向上转型可以自动完成,完成之后调用的方法是被子类覆写过的方法。
• 向下转型:将父类实例变为子类实例
|- 格式:子类 子类对象 = (子类)父类实例 ; 强制完成
|- 以基本数据类型操作为例:char c = (char)98 ; 因为整型的容量比char大,所以强制完成
注意:在相互转型的时候,一定要注意类型的匹配,否则会报ClassCastException: A cannot be cast to B的异常,即两个没有任何关系的对象是不能进行相互的转型操作;
如果一个对象要想进行向下转型之前,必须之前发生过向上转型操作。只有这样才能建立关系。
G instanceof关键字
如果要想判断某个对象是否是指定类的实例,则可以使用instanceof关键字完成。
判断的语法格式如下:
实例化对象 instanceof 类 此操作返回boolean类型的数据
H Object类
Object类是所有类的父类,如果一个类没有明确的继承某一个具体的类,则将默认继承Object类。
Object类中的三个重要方法:
• 得到对象信息:public String toString()
• 进行对象比较:public boolean equals(Object obj)
• 得到对象的hash码:public int hashCode()
1、在对象打印的时候将默认调用toString()方法,但是这样调用toString()方法的返回信息并不明确,如果希望返回一个具体类的信息,则必须在子类中覆写toString()方法。
2、如果一个类需要进行对象比较,那么就可以覆写equals()方法
3、使用Object可以接收任意的引用数据类型
4、可变参数中如果使用了Object作为类型,则任何类型都可以接收
I super关键字和this关键字的区别
this与super的比较
No. 比较点 this super
1 属性 调用本类中的属性,如果本类中没有此属性,将从父类中继续查找 直接表示调用的属性是父类中的属性
2 方法 调用本类中的方法 调用父类中的方法,一般在方法被覆写之后
3 构造 调用本类中的其他构造方法 调用父类中的其他构造方法
4 使用 必须放在构造方法的首行 必须放在子类构造方法的首行
this和super无法同时出现,但是在类中至少有一个构造方法是没有使用this()调用的,那么这个构造方法一般都会去使用super调用父类中的构造方法
5 特殊点 表示当前对象 无此概念
J
今天的问题
A
解决方法:
一一验证
//1、父类中的方法为默认的,子类中的覆写方法是默认的或public,都能覆写成功
//2、父类中的方法为私有的,子类中的覆写方法是默认的或public或private,都不能覆写成功
//3、父类中的方法为私有的,子类中的覆写方法是私有的,
//但是覆写访问父类中的这个私有方法的方法,可以使得私有方法的覆写起作用
问题描述:
思考?
如果在父类中使用private关键字修饰了一个方法,子类中使用default或者public修饰方法,那么此方法是否称为覆写呢?
B class A{
public void print(){
System.out.println("父类中的方法");
}
}
class B extends A{
public String print(){
return "子类中的方法";
}
}
解决方法:方法覆写,返回值类型必须一致
报错:ReWriteMethod.java:27: print() in B cannot override print() in A; attempting to
use incompatible return type
found : java.lang.String
required: void
public String print(){ //(aa:)
^
1 error
今天再次看了mldn的课程介绍的时候,忽然对后面即将要学习那么多那么多的知识产生了害怕的心理,开始怀疑自己能不能学好?
我知道自己的学习弱点在于没有超强的毅力,所以这次连续高强度的4个月的学习是对我的极大挑战。
希望自己能坚持!!
坚持4个月,一切都会好转的!!
发表评论
-
本小姐回来啦 —— 超级感谢MLDN
2009-08-10 13:24 1612我又回来了!哈哈,报告一个好消息,我已经成功入职博彦科 ... -
现在开始积极的找工作
2009-07-05 19:13 1188学习差不多了,得赶在毕业前找到一个工作啊,本小姐这段时 ... -
素质教育 —— 模拟面试
2009-06-30 19:10 1067今天一天都安排了职业素质的培养,包括简历的指导、技术面 ... -
EJB实体Bean开发的复合主键映射
2009-06-29 21:36 1697复合主键的映射:在Hibernate中是通过一个主键类来完成复 ... -
EJB实体Bean开发
2009-06-29 21:33 996EJB实体Bean开发的数据库连接采用数据源连接池的方式,因此 ... -
EJB3.0
2009-06-28 14:14 1244EJB是SUN公司提出的开发 ... -
JBoss服务器配置
2009-06-25 21:21 2085哦,哦,哦,EJB的准备课程啊。 这里开发使用的是 JB ... -
Spring结合iBATIS进行开发
2009-06-25 21:19 978使用Spring管理iBATIS完全可以参照Spring+Hi ... -
ibatis开发框架
2009-06-25 21:17 1277iBATIS为一个ORMapping框架,可以帮助开发人员完成 ... -
WebService分布式开发
2009-06-24 22:23 1916WebService:用来跨语言传递数据。 数据交互是通过XM ... -
北京下雨了
2009-06-18 19:56 779上次在公交车上,听到电视里放《北京下雨了》,那么北京今天 ... -
JQuery
2009-06-10 21:03 12761、JQuery的基本语法 ... -
AJAX中使用JSON
2009-06-10 21:02 1308在Java开发中,如果要使用JSON进行开发,需要一些支持,这 ... -
AJAX框架 —— JSON基本知识
2009-06-10 21:01 957我真想知道这年头到底有多少种框架。 1、JSON ... -
还应该多帮助同学,才能让自己进步快
2009-06-08 21:57 1006今天对于本小姐来讲还真是相对轻松的一天啊,上周完成了任 ... -
业务、业务、业务。。。
2009-06-03 18:41 1156项目就是业务,项目中都是业务,技术就这么点东西,只要把 ... -
IBM Project 继续中ing....
2009-06-02 19:08 884项目就是要坚持的做下去,而且要想到做到最好,虽然框架很好 ... -
实际开发了
2009-06-01 18:17 898今天开始新的项目了,项目老师帮我们搭建好了SVN服务器, ... -
web学习笔记 —— 数据源
2009-05-31 19:56 1037使用数据源可以提升数据库的操作性能,当然,不管使用与否,对于程 ... -
SSH(Spring + Struts + Hibernate)
2009-05-31 19:47 2499Spring结合Hibernate ...
相关推荐
利用Simulink实现混合储能系统在直流微网中的下垂控制策略研究:保持直流母线电压稳定的实践与探究,Simulink仿真下的光储直流微网混合储能系统下垂控制策略优化研究(注意版本要求为2021A以上),混合储能系统 光储微网 下垂控制 Simulink仿真 注意版本2021A以上 由光伏发电系统和混合储能系统构成直流微网。 混合储能系统由超级电容器和蓄电池构成,通过控制混合储能系统来维持直流母线电压稳定。 混合储能系统采用下垂控制来实现超级电容和蓄电池的功率分配,蓄电池响应低频量,超级电容响应高频量。 通过改变光照来影响光伏出力,控制混合储能系统保持微网直流母线电压稳定在380V,不受光伏出力变化影响。 ,混合储能系统; 光储微网; 下垂控制; Simulink仿真; 版本2021A; 直流母线电压稳定; 光伏出力变化; 超级电容器; 蓄电池。,2021A+混合储能系统:光储微网下垂控制Simulink仿真研究
内容概要:本文档是针对JavaScript这一跨平台解释型语言的详尽入门手册,首先概述了JavaScript的概念及其重要特性,强调它不仅适用于前端同时也活跃于Node.js的服务器环境之中,从而成为全栈开发的重要技能。紧接着文档阐述了JavaScript的基本语法元素如变量声明、数据类型、运算符及控制结构,让新手理解JavaScript的语法规则,并通过函数与对象操作加深印象。之后介绍了一些常见的实用工具和高级用法,例如模板字符串、解构赋值以及异步编程手段(比如Promise)。对于想要深入探索的应用场景给出了广泛的指引,无论是传统的web开发还是新兴领域的IoT或自动化脚本编写皆有所涉猎。 适合人群:对于那些没有编程背景或有其他编程经验但仍希望了解并擅长运用JavaScript的个人来说非常适合。 使用场景及目标:目的是向初学者提供足够的理论指导和技术实践机会,使他们能够在不同平台上利用JavaScript创造出有意义的作品;不论是想要从事专业软件开发或是业余项目爱好者都能够从中受益。 其他说明:文档还提供了大量权威且有用的外部链接供进一步深造学习,包括但不限于主流的在线课程、权威的技术参考资料及充满活力的支持社区。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
级联H桥SVG无功补偿系统在不平衡电网中的三层控制策略:电压电流双闭环PI控制、相间与相内电压均衡管理,级联H桥SVG无功补偿系统在不平衡电网中的三层控制策略:电压电流双闭环PI控制、相间与相内电压均衡管理,不平衡电网下的svg无功补偿,级联H桥svg无功补偿statcom,采用三层控制策略。 (1)第一层采用电压电流双闭环pi控制,电压电流正负序分离,电压外环通过产生基波正序有功电流三相所有H桥模块直流侧平均电压恒定,电流内环采用前馈解耦控制; (2)第二层相间电压均衡控制,注入零序电压,控制通过注入零序电压维持相间电压平衡; (3)第三层相内电压均衡控制,使其所有子模块吸收的有功功率与其损耗补,从而保证所有H桥子模块直流侧电压值等于给定值。 有参考资料。 639,核心关键词: 1. 不平衡电网下的SVG无功补偿 2. 级联H桥SVG无功补偿STATCOM 3. 三层控制策略 4. 电压电流双闭环PI控制 5. 电压电流正负序分离 6. 直流侧平均电压恒定 7. 前馈解耦控制 8. 相间电压均衡控制 9. 零序电压注入 10. 相内电压均衡控制 以上十个关键词用分号分隔的格式为:不
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
基于主从博弈的动态定价策略与电动汽车充电管理优化在智能小区的实践(MATLAB+CPLEX gurobi实现),基于主从博弈理论的智能小区电动汽车充电与代理商动态定价策略优化研究,MATLAB代码:基于主从博弈的智能小区代理商定价策略及电动汽车充电管理 关键词:电动汽车 主从博弈 动态定价 智能小区 充放电优化 参考文档:《基于主从博弈的智能小区代理商定价策略及电动汽车充电管理》基本复现 仿真平台:MATLAB+CPLEX gurobi平台 主要内容:代码主要做的是一个电动汽车充电管理和智能小区代理商动态定价的问题,将代理商和车主各自追求利益最大化建模为主从博弈,上层以代理商的充电电价作为优化变量,下层以电动汽车的充电策略作为优化变量,通过优化得出最优电价策略以及动态充电策略。 ,电动汽车; 主从博弈; 动态定价; 智能小区; 充放电优化; MATLAB; CPLEX; gurobi平台。,基于主从博弈的电动汽车充电管理与定价策略优化MATLAB代码实现
基于Matlab语言实现的设计项目 2、适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计中的部分功能,作为“参考资料”使用。 3、解压说明:本资源需要电脑端使用WinRAR、7zip等解压工具进行解压,没有解压工具的自行百度下载即可。 4、免责声明:本资源作为“参考资料”而不是“定制需求”,代码只能作为参考,不能完全复制照搬。不一定能够满足所有人的需求,需要有一定的基础能够看懂代码,能够自行调试代码并解决报错,能够自行添加功能修改代码。由于作者大厂工作较忙,不提供答疑服务,如不存在资源缺失问题概不负责,谢谢理解。
资源内项目源码是均来自个人的课程设计、毕业设计或者具体项目,代码都测试ok,都是运行成功后才上传资源,答辩评审绝对信服的,拿来就能用。放心下载使用!源码、说明、论文、数据集一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 4、如有侵权请私信博主,感谢支持
Labiew噪音与振动检测模块源码揭秘:傅里叶变换与倍频程技术应用于实际项目,LabVIEW平台噪声与振动检测模块源码解析:基于傅里叶变换与倍频程原理的实用功能模块,已成功应用于实际项目,虚拟产品退换政策严谨执行,Labiew噪音与振动检测模块源码,改功能模块已运用到实际项目,原理是利用傅里叶变和倍频程实现的,产品一旦发概不 。 需要的可以联系哟 ,Labiew源码; 噪音与振动检测模块; 傅里叶变换; 倍频程; 实际项目运用,Labiew傅里叶变换倍频程噪音振动检测模块源码
基于Comsol多物理场仿真的光伏集热器异形体建模技术研究,探索comsol多物理场仿真技术:光伏集热器异形体建模应用,comsol多物理场仿真,光伏集热器,异形体建模 ,comsol多物理场仿真; 光伏集热器仿真; 异形体建模,Comsol多物理场仿真在光伏集热器及异形体建模中的应用
器官3D分割-基于WinForm框架开发的医学影像系统源码+sln+演示视频(毕设基于c#和python开发).zip 【项目简单介绍】 主要功能 肺炎诊断 器官 3D 分割 该系统具备肺炎诊断和器官 3D 分割的功能,并模仿了罗万科技的系统界面风格。 python和c#开发实现
MATLAB可以用于开发水果识别系统。这种系统通常利用机器学习和图像处理技术,对输入的水果图像进行特征提取和分类识别。以下是开发水果识别系统的一般步骤: 1. 数据收集:收集包含各种水果类别的图像数据集。 2. 数据预处理:对图像进行预处理,包括裁剪、缩放、灰度化等操作。 3. 特征提取:从每个水果图像中提取特征,例如颜色直方图、纹理特征、形状特征等。 4. 数据标记:为每个图像标记水果类别,形成训练集和测试集。 5. 模型训练:使用机器学习算法(如支持向量机、卷积神经网络等)对训练集进行训练,建立水果识别模型。 6. 模型测试:使用测试集对模型进行测试和评估,调整模型超参数以提高准确率。 7. 系统集成:将训练好的模型集成到MATLAB应用程序中,实现水果识别功能。 8. 用户界面设计:设计用户友好的界面,以便用户上传水果图像并查看识别结果。 MATLAB提供了丰富的图像处理工具箱和机器学习工具箱,可以帮助开发者快速构建水果识别系统。通过结合这些工具箱,可以实现水果的快速、准确识别。
COMSOL声子晶体仿真研究:一维至三维能带与带隙分析及色散曲线弹性波声波分析,声子晶体仿真:COMSOL代做能带图、带隙图及弹性波、声波分析与优化设计,COMSOL代做 声子晶体仿真,一维,二维,三维能带图,带隙图,色散曲线,弹性波,声波。 ,COMSOL代做;声子晶体仿真;一维/二维/三维能带图;带隙图;色散曲线;弹性波仿真;声波分析,COMSOL声子晶体仿真专家:一至三维声波模拟及能带图绘制
Matlab Simulink仿真探究Flyback反激式开关电源性能表现与优化策略,Matlab Simulink仿真探究Flyback反激式开关电源的工作机制,Matlab Simulimk仿真,Flyback反激式开关电源仿真 ,Matlab; Simulink仿真; Flyback反激式; 开关电源仿真,Matlab Simulink在Flyback反激式开关电源仿真中的应用
陪读租房系统(源码+数据库+论文+ppt)java开发springboot框架javaweb,可做计算机毕业设计或课程设计 【功能需求】 本系统有三个角色:管理员、租客和房主,要求具备以下功能: (a) 管理员;管理员使用本系统涉到的功能主要有:首页、个人中心、租客管理、房主管理、房源信息管理、房源类型管理、教育书籍管理、文章分类管理、租房信息管理、合同信息管理、在线咨询管理、咨阅回复管理、教育论坛、系统管理等功能。 (b) 租客;进入前台系统可以实现首页、房源信息、教育书籍、教育论坛、公告信息、后台管理等功能进行操作。 (C) 房主;进入系统可以实现首页、个人中心、房源信息管理、租房信息管理、合同信息管理、在线咨询管理、咨询回复管理等功能进行操作。 【环境需要】 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.数据库:MySql 5.7/8.0等版本均可; 【购买须知】 本源码项目经过严格的调试,项目已确保无误,可直接用于课程实训或毕业设计提交。里面都有配套的运行环境软件,讲解视频,部署视频教程,一应俱全,可以自己按照教程导入运行。附有论文参考,使学习者能够快速掌握系统设计和实现的核心技术。
vue3的一些语法以及知识点
1、文件内容:libicu-doc-50.2-4.el7_7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/libicu-doc-50.2-4.el7_7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
水果销售商城(源码+数据库+论文+ppt)java开发springboot框架javaweb,可做计算机毕业设计或课程设计 【功能需求】 水果购物网站用户可以注册登录,在首页开通会员卡,查看水果,购买水果,查看水果信息,以及个人中心修改个人资料,在自己的后台查看自己的购买记录等。 水果购物网站管理员功能:个人中心管理,用户管理,会员管理,会员卡管理,开通会员记录管理,积分管理,水果管理,购买水果订单管理,积分兑换管理,积分兑换记录管理,加积分记录管理,减积分记录管理。 【环境需要】 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.数据库:MySql 5.7/8.0等版本均可; 【购买须知】 本源码项目经过严格的调试,项目已确保无误,可直接用于课程实训或毕业设计提交。里面都有配套的运行环境软件,讲解视频,部署视频教程,一应俱全,可以自己按照教程导入运行。附有论文参考,使学习者能够快速掌握系统设计和实现的核心技术。
基于Matlab的双输入深度学习模型构建指南:处理序列与图像数据的创新性应用,Matlab双输入深度学习模型搭建指南:如何处理两种输入数据并实现创新与优势,Matlab搭建双输入深度学习模型,双输入网络。 相比普通的单输入网络,双输入网络能处理两种输入数据,在科研上也更具有优势和创新性。 如何用Matlab搭建双输入网络也是困扰本人很长时间的一个问题,现已弄明白。 注意,需要Matlab 2022b及以上版本,以下版本估计是都不行。 本程序是两个输入全为一维序列的情况(第二个输入序列是第一个输入序列的特征值,或者变后的序列)。 也可改为两边输入都是图像,或者一边输入图像,一边输入图像的一维特征序列。 本程序工作如下: 1、加载数据,两种输入数据一一对应,第二个数据是第一个数据做FFT之后的序列,属于一个类别。 两种数据样本数相等,序列长度不相等。 2、搭建双输入网络,此网络一边是CNN-LSTM,一边是CNN。 3、训练。 4、测试,输出准确率。 注:程序可直接运行,包教会和调通。 可以有偿修改为两边输入都是图像,或一边输入图像一边输入序列的模型。 可有偿替数据,调通程序。 程序注释详
包含十大管理49个过程组的输入与输出和解释,还有EVA铮值管理的公式汇总和解释