「模版类java」模版类声明
本篇文章给大家谈谈模版类java,以及模版类声明对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java 静态方法的返回值为模板类的问题
- 2、java中什么是类?
- 3、java的模板类实例化问题
- 4、java可以实现c语言的模板功能吗
- 5、关于java模板类问题,请求帮助。
- 6、Java 怎么把数组中存的map 值 取出来 模板类中
java 静态方法的返回值为模板类的问题
额
居然还可以这么写哇!!!
头一次见到,
学习学习!!!
望高手解答!!!
不过个人理解PropertyConverterT前面的T是作用static的,不写T的话如果报“静态方法不能返回非静态对象”这个错误,那你的返回值就必须是静态的,但你写new PropertyConverterT(targetType); 的话又不是静态的·· 所以才报错吧,不过你给static也加了泛型,而返回值是非静态泛型,但都是泛型,广泛的类型,JAVA应该认为广泛的类型这里可能会出现静态也可能不会出现静态,于是就草草了事了吧~~
java中什么是类?
类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。举一个例子说明下类,比如Person(人)就是一个类,那么具体的某个人“张三”就是“人类”这个类的对象,而“姓名、身高、体重”等信息就是对象的属性,人的动作比如“吃饭、穿衣”等就是对象的方法。总之类就是有相同特征的事物的集合,而对象就是类的一个具体实例。同时类有多态和继承,例如“人类”可以分为“男人、女人”,“老人、小孩”那么“男人、女人”就是“人类”的子类等等。
Java语言中对类Person的定义往往如下:
public class Person {
private String name; //属性:姓名
private int height; //属性:身高
private int weight; //属性:体重
public Person() {}
public Person(String name, int height, int weight) {
this.name = name;
this.height = height;
this.weight = weight;
}
//... some methods...
public void doSth() { //行为:
//... do something
}}
Java中的类
类可以看成是创建Java对象的模板。
通过下面一个简单的类来理解下Java中类的定义:
public class Dog{
String breed; int age; String color; void barking(){
}
void hungry(){
}
void sleeping(){
}}
一个类可以包含以下类型变量:
局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。
一个类可以拥有多个方法,在上面的例子中:barking()、hungry()和sleeping()都是Dog类的方法。
java的模板类实例化问题
class vector(T)这里面的T表示某种具体的类类型,由你实际调用的时候来决定,你可以阅读一些关于Java泛类型的知识,就会明白了。
然后针对你main()方法里面v.add((byte)0);你把byte作为了"某种具体的类",那么
vectorT v=new vectorT();
改为以下就可以了:(用byte的封装类Byte作为某种具体类)
vectorByte v=new vectorByte(null);
java可以实现c语言的模板功能吗
1、java是纯面向对象的语言(main都是写到类里的),所以没有原生的模板功能。
2、使用“模板模式”可以实现类似的效果,这也是java里最常用的模式之一。
以下是一篇教程:
模板方法模式的结构
模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术。
模板方法模式需要开发抽象类和具体子类的设计师之间的协作。一个设计师负责给出一个算法的轮廓和骨架,另一些设计师则负责给出这个算法的各个逻辑步骤。代表这些具体逻辑步骤的方法称做基本方法(primitive method);而将这些基本方法汇总起来的方法叫做模板方法(template method),这个设计模式的名字就是从此而来。
模板方法所代表的行为称为顶级行为,其逻辑称为顶级逻辑。模板方法模式的静态结构图如下所示:
这里涉及到两个角色:
抽象模板(Abstract Template)角色有如下责任:
■定义了一个或多个抽象操作,以便让子类实现。这些抽象操作叫做基本操作,它们是一个顶级逻辑的组成步骤。
■定义并实现了一个模板方法。这个模板方法一般是一个具体方法,它给出了一个顶级逻辑的骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类实现。顶级逻辑也有可能调用一些具体方法。
具体模板(Concrete Template)角色又如下责任:
■实现父类所定义的一个或多个抽象方法,它们是一个顶级逻辑的组成步骤。
■每一个抽象模板角色都可以有任意多个具体模板角色与之对应,而每一个具体模板角色都可以给出这些抽象方法(也就是顶级逻辑的组成步骤)的不同实现,从而使得顶级逻辑的实现各不相同。
源代码
抽象模板角色类,abstractMethod()、hookMethod()等基本方法是顶级逻辑的组成步骤,这个顶级逻辑由templateMethod()方法代表。
public abstract class AbstractTemplate {
/**
* 模板方法
*/
public void templateMethod(){
//调用基本方法
abstractMethod();
hookMethod();
concreteMethod();
}
/**
* 基本方法的声明(由子类实现)
*/
protected abstract void abstractMethod();
/**
* 基本方法(空方法)
*/
protected void hookMethod(){}
/**
* 基本方法(已经实现)
*/
private final void concreteMethod(){
//业务相关的代码
}
}
具体模板角色类,实现了父类所声明的基本方法,abstractMethod()方法所代表的就是强制子类实现的剩余逻辑,而hookMethod()方法是可选择实现的逻辑,不是必须实现的。
public class ConcreteTemplate extends AbstractTemplate{
//基本方法的实现
@Override
public void abstractMethod() {
//业务相关的代码
}
//重写父类的方法
@Override
public void hookMethod() {
//业务相关的代码
}
}
模板模式的关键是:子类可以置换掉父类的可变部分,但是子类却不可以改变模板方法所代表的顶级逻辑。
每当定义一个新的子类时,不要按照控制流程的思路去想,而应当按照“责任”的思路去想。换言之,应当考虑哪些操作是必须置换掉的,哪些操作是可以置换掉的,以及哪些操作是不可以置换掉的。使用模板模式可以使这些责任变得清晰。
关于java模板类问题,请求帮助。
LIstString aa= new ListString();
这样链表就支持的是字符串了。
Java 怎么把数组中存的map 值 取出来 模板类中
ListMapString,String list = new ArrayListMapString,String();
Map map ;
for(int i = 0;i5;i++){
map = new HashMap();
map.put("name","king"+i);
list.add(map);
}
for(MapString,String map2:list){
System.out.println("map的值:"+map2.get("name"));
}
模版类java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于模版类声明、模版类java的信息别忘了在本站进行查找喔。
发布于:2022-12-20,除非注明,否则均为
原创文章,转载请注明出处。