精华内容
下载资源
问答
  • [图片说明](https://img-ask.csdn.net/upload/201703/08/1488988256_399330.png)图片说明](https://img-ask.csdn.net/upload/201703/08/1488988228_489076.png) ![图片说明]...
  • 根据在网上查到的方法已经通过反射获取web服务方法信息,包括方法返回类型、方法名、参数类型、参数名等,但是用GetInterfaces无法获取继承的接口信息。 ![图片说明]...
  • 上一章简单介绍了Hibernate与Java的数据类型转换和对数组,集合的扩充(十三),如果没有看过,请观看上一章 ...以下所有的图片均来自于音①晓 前辈。...在实际项目中,常常会遇到有关继承的问题。 如,...

    上一章简单介绍了Hibernate与Java的数据类型转换和对数组,集合的扩充(十三),如果没有看过,请观看上一章
    参考了音①晓 前辈的文章: http://www.cnblogs.com/otomedaybreak/archive/2012/01/26/2329809.html
    以下所有的图片均来自于音①晓 前辈。

    一.Hibernate的继承映射

    在实际项目中,常常会遇到有关继承的问题。 如,图书馆项目中对普通学生和教师之间的处理。 学生和教师拥有着很多相同的字段,如姓名,年龄,性别,生日等,也有着不同的字段,如学生有学号,教师的教师编号。 普通的做法是为学生单独创建一个类,生成一个学生的表,为教师创建一个类,生成一个教师的表。 然而,这样单独生成的话,学生和教师是完全分开的,而他们均有借书,还书,扣款等操作,需要在代码中进行区分教师和学生。 学生借书就要new Student(), 教师借书就要new Teacher(), 无法实现对象多态。 还有一种做法是,将学生和教师当成一个类,把他们所有的属性都放置在一个表里面,其中存在一个类型的字段type 来区分学生和教师。 如type=1 表示学生, type=2 表示教师。 在代码中,可以利用传递的type的不同,来进行不同的操作。

    if(type==1){
    	//执行学生的操作
    }else if (type==2){
    	//执行教师的操作
    }
    

    这样的设计也是不合理的。 1, 需要在表中将学生和教师的所有的字段给包括起来。 2,教师和学生的区分是通过type来区分的,即type=1 时是学生,那么就要手动控制教师的特有属性为null,type=2时是教师,那么需要手动控制学生的特有属性为null. 3,最可怕的一点,不具有可扩展性。 如果再加一个类型,如图书馆馆员。 那么就要设置type=3, 并且将图书馆员的特有属性放置到这个表里面,即需要改变一下表的结构,多添加几个属性。 这是非常危险的。 所以,在Hibernate中提供了一种继承映射,来解决这些。将这种继承放置到Hibernate中,通过Hibernate来进行处理。
    有三种方案:

    1. 一个子类对应一张表
    2. 使用一张表,表示所有继承体系下类的属性的并集
    3. 每一个子类使用一张表,记录它的独特属性,与父类所对应的表以一对一的方式关联起来。

    二.第一种方案继承映射

    来源于:音①晓 前辈
    在这里插入图片描述

    二.一 父类Person

    package com.yjl.pojo;
    /**
    @Date: 2019年3月24日
    @author: 两个蝴蝶飞
    @Description:父类 人员
    */
    public class Person {
    	/**
    	注意,此时id是字符串形式。
    	 * @param id 主键
    	 * @param name 姓名
    	 * @param sex 性别
    	 * @param age 年龄
    	 */
    	private String id;
    	private String name;
    	private String sex;
    	private Integer age;
    	public String getId() {
    		return id;
    	}
    	public void setId(String id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getSex() {
    		return sex;
    	}
    	public void setSex(String sex) {
    		this.sex = sex;
    	}
    	public Integer getAge() {
    		return age;
    	}
    	public void setAge(Integer age) {
    		this.age = age;
    	}
    }
    

    二.二 子类Student

    package com.yjl.pojo;
    /**
    @Date: 2019年3月24日
    @author: 两个蝴蝶飞
    @Description:学生的子类
    */
    public class Student extends Person{
    	/**
    	 * @param 学生独特的属性  编号
    	 */
    	private String stuNo;
    
    	public String getStuNo() {
    		return stuNo;
    	}
    	public void setStuNo(String stuNo) {
    		this.stuNo = stuNo;
    	}
    }
    

    二.三 子类Teacher

    package com.yjl.pojo;
    /**
    @Date: 2019年3月24日
    @author: 两个蝴蝶飞
    @Description:教师的子类
    */
    public class Teacher extends Person{
    	/**
    	 * @param 老师的独特属性 salary 工资 
    	 */
    	private Float salary;
    
    	public Float getSalary() {
    		return salary;
    	}
    	public void setSalary(Float salary) {
    		this.salary = salary;
    	}
    }
    
    

    二.四 父类.hbm.xml 即Person.hbm.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 引入相应的约束 -->
    <!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
    	<!-- 这有一个abstract 如果为true,表示抽象,是不会生成Person表的。
    	如果不写,或者为false,默认为false, 那么会生成Person表,但是并不会往里面插入数据。 建议写true -->
    	<class name="com.yjl.pojo.Person" abstract="true">
    		<id name="id" column="id" type="string">
    			<!--注意,此时id是uuid 属性,并不是native-->
    			<generator class="uuid"></generator>
    		</id>
    		<property name="name" column="name"></property>
    		<property name="sex" column="sex"></property>
    		<property name="age" column="age"></property>
    	</class>
    	<!-- 采用union-subclass来表明父子关系  name表示引用的类,table表示要生成的表,
    	extends表示继承哪个父类-->
    	<union-subclass name="com.yjl.pojo.Student" table="student"
    	extends="com.yjl.pojo.Person">
    		<!-- 学生的独特属性 -->
    		<property name="stuNo" column="stuNo"></property>
    		<!-- 如果有其他的独特属性,可以用property 继续往下写.-->
    	</union-subclass>
    	<!-- 继续依次写其他的子类 -->
    	<union-subclass name="com.yjl.pojo.Teacher" table="teacher"
    	extends="com.yjl.pojo.Person">
    		<!-- 教师的独特属性 -->
    		<property name="salary" column="salary"></property>
    	</union-subclass>
    </hibernate-mapping>
    

    也可以将union-subclass写在class标签里面,明确表示是person类的子类,这样,就可以不用extends标签了。

    <!-- 这有一个abstract 如果为true,表示抽象,是不会生成Person表的。
    	如果不写,或者为false,默认为false, 那么会生成Person表,但是并不会往里面插入数据。 建议写true -->
    	<class name="com.yjl.pojo.Person" abstract="true">
    		<id name="id" column="id" type="string">
    			<!--注意,此时id是uuid 属性,并不是native-->
    			<generator class="uuid"></generator>
    		</id>
    		<property name="name" column="name"></property>
    		<property name="sex" column="sex"></property>
    		<property name="age" column="age"></property>
    		<!-- 采用union-subclass来表明父子关系  name表示引用的类,table表示要生成的表,
    	extends表示继承哪个父类-->
    		<union-subclass name="com.yjl.pojo.Student" table="student">
    			<!-- 学生的独特属性 -->
    					<property name="stuNo" column="stuNo"></property>
    			<!-- 如果有其他的独特属性,可以用property 继续往下写.-->
    		</union-subclass>
    	<!-- 继续依次写其他的子类 -->
    		<union-subclass name="com.yjl.pojo.Teacher" table="teacher">
    			<!-- 教师的独特属性 -->
    					<property name="salary" column="salary"></property>
    		</union-subclass>
    	</class>
    

    三种方式,均可以写在里面,或者写在外面。写在外面,就要用extends 来指定是哪一个父类。

    二.五 创建表 (代码与下面的方式一样)

    @Test
    	public void createTest(){
    		Session session=HibernateUtil.getSession();
    		session.close();
    	}
    

    在这里插入图片描述

    二.五 插入数据 (代码与下面的方式一样)

    
    @Test
    	public void saveTest(){
    		Session session=HibernateUtil.getSession();
    		Transaction transaction=session.beginTransaction();
    		// 用学生子类,不用父类。 
    		Student student=new Student();
    		student.setName("两个蝴蝶飞");
    		student.setSex("男");
    		student.setAge(24);
    		student.setStuNo("1403070234");
    		
    		Teacher teacher =new Teacher();
    		teacher.setName("精灵妹");
    		teacher.setAge(24);
    		teacher.setSex("女");
    		teacher.setSalary(5000f);
    		
    		session.save(student);
    		session.save(teacher);
    		transaction.commit();
    		session.close();
    	}
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    注意观察id,这就是为什么id生成策略不能是native的原因。 如果是native,那么id在插入学生表是1,插入教师表是1 再次插入学生表是2,再次插入教师表是2,这样取出时是不能区分的。 并不会在不同的表里面自动增长的。

    二.六 读取数据 (代码与下面的方式一样,只是将编号转换成普通的数字)

    @Test
    	public void readTest(){
    		Session session=HibernateUtil.getSession();
    		Transaction transaction=session.beginTransaction();
    		// 查询学生
    		Person student=session.get(Student.class,"8a81819169add45d0169add45f680000");
    		readPerson(student);
    		Person teacher=session.get(Teacher.class,"8a81819169add45d0169add45f8b0001");
    		readPerson(teacher);
    		transaction.commit();
    		session.close();
    	}
    	private void readPerson(Person p){
    		System.out.println(p.getName()+":"+p.getSex());
    	}
    

    在这里插入图片描述
    这样就可以利用多态的方式进行操作了。 其中,如果想到读取Student的学号和Teacher的工资,可以利用向下转型来取得。 第二种方式时介绍,这里不做介绍了。

    三. 第二种继承映射

    在这里插入图片描述
    这种映射是放在同一张表里面。所以,父类中的id可以用Integer形式。这里将父类用Integer来表示。 子类的代码不变.

    private Integer id;
    

    配置文件: Person.hbm.xml

    <hibernate-mapping>
    	<!--这里不用写abstract="true" 写入一个table标签-->
    	<class name="com.yjl.pojo.Person" table="person">
    		<id name="id" column="id">
    			<!--可以用自动增长-->
    			<generator class="native"></generator>
    		</id>
    	    <!-- 定义一个区别的属性  这个区别属性是嵌入到数据库中的。这个属性必须放在普通的属性最前面。-->
    		<discriminator column="personType" type="string" ></discriminator>
    		<property name="name" column="name"></property>
    		<property name="sex" column="sex"></property>
    		<property name="age" column="age"></property>
    		<!-- 用的是subclass -->
    		<subclass name="com.yjl.pojo.Student" discriminator-value="student">
    			<!-- 学生的独特属性 -->
    			<property name="stuNo" column="stuNo"></property>
    			<!-- 如果有其他的独特属性,可以用property 继续往下写.-->
    		</subclass>
    		<!-- 继续依次写其他的子类 -->
    		<subclass name="com.yjl.pojo.Teacher" discriminator-value="teacher">
    			<!-- 教师的独特属性 -->
    			<property name="salary" column="salary"></property>
    		</subclass>
    	</class>
    </hibernate-mapping>
    

    创建测试与第一种方式一样,运行之后是:
    在这里插入图片描述
    插入的代码与第一种一样。不用我们手动维护这个personType的值。 Hibernate会自动插入的。
    在这里插入图片描述
    没有的属性,会被设置成null.
    在这里插入图片描述
    读取时:

    @Test
    	public void readTest(){
    		Session session=HibernateUtil.getSession();
    		Transaction transaction=session.beginTransaction();
    		// 查询学生
    		Person student=session.get(Student.class,1);
    		readPerson(student);
    		Person teacher=session.get(Teacher.class,2);
    		readPerson(teacher);
    		transaction.commit();
    		session.close();
    	}
    	private void readPerson(Person p){
    		System.out.println(p.getName()+":"+p.getSex());
    		if(p instanceof Student){
    			Student student=(Student)p;
    			System.out.println(student.getStuNo());
    		}else if (p instanceof Teacher){
    			Teacher teacher =(Teacher) p;
    			System.out.println(teacher.getSalary());
    		}else{
    			System.out.println("null");
    		}
    	}
    

    在这里插入图片描述

    四. 第三种方式

    在这里插入图片描述
    Person父类表的id仍然可以是id. 这个时候,会自动增长的。 可以不变。

    <hibernate-mapping>
    	<!--这里不能写abstract="true" 写入一个table标签。 会生成一个具体有用的表,会插入数据的。-->
    	<class name="com.yjl.pojo.Person" table="person">
    		<id name="id" column="id">
    			<!--可以用自动增长-->
    			<generator class="native"></generator>
    		</id>
    		<property name="name" column="name"></property>
    		<property name="sex" column="sex"></property>
    		<property name="age" column="age"></property>
    	</class>
    	<!-- 用的是joined-subclass -->
    	<joined-subclass name="com.yjl.pojo.Student" table="student"
    	extends="com.yjl.pojo.Person">
    		<!-- 引入id -->
    		<key column="id"></key>
    		<!-- 学生的独特属性 -->
    		<property name="stuNo" column="stuNo"></property>
    		<!-- 如果有其他的独特属性,可以用property 继续往下写.-->
    	</joined-subclass>
    	<!-- 继续依次写其他的子类 -->
    	<joined-subclass name="com.yjl.pojo.Teacher" table="teacher"
    	extends="com.yjl.pojo.Person">
    		<key column="id"></key>
    		<!-- 教师的独特属性 -->
    		<property name="salary" column="salary"></property>
    	</joined-subclass>
    </hibernate-mapping>
    

    生成表的代码运行成功之后:
    在这里插入图片描述
    在插入的代码测试之后:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    查询的时候,与第二种方式一样。不做介绍了。

    五 优缺点比较

    第一种方式:
    优点:数据结构清晰
    缺点:两个子表的主键不能重复,不能使用数据库的自增方式生成主键。
    第二种方式:
    优点::查询效率高,符合数据库设计粗粒度
    缺点:存在冗余字段,有些字段是子类不具有的属性。
    第三种方式:
    优点: 数据结构清晰,没有冗余
    缺点: 类的继承层次比较多的话,造成生成的表也比较多,增删改查效率低下
    根据业务需求,进行选择。 推荐使用第二种方式。

    谢谢!!!

    展开全文
  • 因为项目需要,在设计几个类继承关系时,发现如下奇特现象,后来查阅资料发现与C++继承时,this指针传递,继承顺序,虚函数表有关,未深究【以为已找到针对项目合适方案】。 项目中异常抽象出来如下:【图片...

    因为项目需要,在设计几个类继承关系时,发现如下奇特现象,后来查阅资料发现与C++继承时,this指针的传递,继承顺序,虚函数表有关,未深究【以为已找到针对项目的合适方案】。


    项目中的异常抽象出来如下:【图片代表我的心】【图片看不清把页面放大即可,下方有代码】




    #include <stdio.h>
    
    #define __WIN32__
    
    #ifdef __WIN32__
    #define POINTER		int
    #elif defined __LINUX__
    #define POINTER		long
    #endif
    
    class ShiYe
    {
    public:
    	void Run()
    	{
    		printf("ShiYe::Run\t this=0x%08X\n",(POINTER)this);
    	}
    	virtual void Null()=0;
    };
    
    class AiQing:public ShiYe
    {
    public:
    	void Start()
    	{
    		printf("AiQing::Start\t this=0x%08X\n",(POINTER)this);
    		Run();
    	}
    	virtual void Null(){};
    };
    
    int main(int argc, char* argv[]) 
    { 
    	AiQing *aq=new AiQing();
    	aq->Start();
    	delete aq;
    
    	getchar();
    
    	return 0; 
    } 



    展开全文
  • C++学习笔记2继承与派生(二)单继承内存有关基类、派生类构造派生类与基类之间关系如何改变文本样式插入链接与图片如何插入一段漂亮代码片生成一个适合你列表创建一个表格设定内容居中、居左、居右...

    继承与派生(二)

    单继承内存

    没有继承时,成员变量和成员函数会分开存储
    1.对象的内存中只包含成员变量,存储在栈区或堆区(使用new创建对象时)
    2. 成员函数与对象内存分离,存储在代码区
    3. 编译器会将成员变量和成员函数分开存储:分别为每个对象的成员分配内存,但是所有的对象都共享同一段函数代码
    4. 类可以看作是一种复杂的数据类型,如果使用sizeof求类所占的空间的大小,会发现,只是计算了成员变量的大小,并没有把成员函数也包含在内。

    有继承关系时的内存模型
    1.有继承关系时,派生类的内存模型可以看成是基类成员变量和新增成员变量的总和
    2.所有成员函数仍然存储在另外一个区域——代码区,由所有对象共享。

    有关基类、派生类构造

    1. 实例化派生类对象时,首先会创建基类对象,调用基类构造,然后再调用派生类构造。(析构时刚好相反,先调用派生类的析构再调用基类的析构)
    2. 派生类构造应通过成员初始化列表将基类信息传递给基类构造。
    3. 应该在派生类构造中初始化派生类新增的数据成员

    派生类与基类之间的关系

    1.派生类对象可以使用基类的非私有成员函数
    2. 基类指针可以在不进行显式类型转换的情况下指向派生类对象
    3. 可以将派生对象赋值给基类对象,程序将使用隐式重载运算符

    注意
    1.基类指针或引用只能调用基类函数,并不能调用派生类函数
    2.不可以将基类对象和地址赋给派生类引用和对象,即不能进行逆操作

    派生类成员的访问控制

    公有继承

    基类的公有成员和受保护成员,在派生类中保持原来的访问属性,其私有成员仍为基类所独有。

    私有继承

    基类的公有成员和受保护成员,在派生类中成了私有成员,私有成员仍为基类独有

    受保护继承

    基类公有成员和受保护成员,在派生类中成了受保护成员,私有成员仍为基类独有。
    在这里插入图片描述
    注意
    1.公有权限下,自己、派生类及外部都可以访问
    2.私有权限下,只能自己访问,派生类及外部都无法访问
    3.受保护权限下,自己和派生类可以访问,外部无法访问

    继承方式提供给程序员对类进行封装的机制(隐藏细节):

    1.全部继承,不封装基类,那么用公有继承
    2.全部继承,完全封装基类,那么使用私有继承
    3.全部继承,有选择的封装基类,那么使用受保护继承

    这三种选择是程序员在开放中运用面向对象思想的重要体现
    1.需要封装哪些成员变量和函数?
    2.需要把哪些成员函数作为接口来被调用?

    继承与组合

    在一个类中有另外一个类的对象作为数据成员这种方式叫做类的组合形式。
    1.通过继承建立了派生类与基类的关系,是一种is-a“是”的关系
    比如:狗是哺乳动物,战士是英雄
    2.类的组合关系,它们之间不是“是”的关系,而是“有”的关系
    比如:学生有书包,战士有武器
    3.继承是纵向的,组合是横向的

    总结

    1.面向对象编程由4个部分组成:抽象、封装、继承和多态。
    2.派生类有三种继承方式:公有、私有、受保护
    3.派生类由成员变量和成员函数组成
    4.派生类的成员访问有三种方式:公有访问、私有访问、保护访问
    5.类的继承和类的组合是面向对象编程的核心

    展开全文
  • Glide加载圆角图片的方法

    万次阅读 2018-07-06 18:41:10
    现在在市面上很多AppUI设计都会出现圆角图片的显示。Glide本身也提供了圆角图片的加载方式。但是我们在开发中有可能遇到只要顶部展示圆角,或者某一个角是圆角。...本文RoundCorner就是继承了...

    现在在市面上很多App的UI设计都会出现圆角图片的显示。Glide本身也提供了圆角图片的加载方式。但是我们在开发中有可能遇到只要顶部展示圆角,或者某一个角是圆角。这样的需求是该怎么实现呢?

    Glide有对外暴露一个方法,可以在图片显示前,对图片作转换处理——就是Transformations。有关此方面的文字,小可爱们可以看看这篇——Glide - 自定义转换。本文的RoundCorner就是继承了BitmapTransformation类来实现的。它对外提供两个构造函数,一个构造函数有四个参数,分别是leftTop:左上角rightTop:右上角leftBottom:左下角rightBottom:右下角

    1、普通的四个角为圆角图片:

    Glide.with(this).load("https://manhua.qpic.cn/vertical/0/07_22_36_afe651da2ab940d0e257a1ec894bd992_1504795010150.jpg/420")
                    .apply(RequestOptions.bitmapTransform(RoundedCorners(20)))
                    .into(iv)
    

    实现的效果如下:

    2、实现部分的圆角

    import android.content.Context
    import android.graphics.*
    import com.bumptech.glide.load.Key
    import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool
    import com.bumptech.glide.load.resource.bitmap.BitmapTransformation
    import java.security.MessageDigest
    class RoundCorner constructor(context: Context,leftTop: Float = 0f,
                                  rightTop: Float = 0f,
                                  rightBottom: Float = 0f,
                                  leftBottom: Float = 0f) : BitmapTransformation() {
        
        private val ID: String = "com.jadynai.kotlindiary.RoundCorner$leftTop$rightTop$leftBottom$rightBottom"
    
        private val leftTop: Float = dip2px(context,leftTop).toFloat()
        private val rightTop =dip2px(context,rightTop).toFloat()
        private val leftBottom =  dip2px(context,leftBottom).toFloat()
        private val rightBottom =  dip2px(context,rightBottom).toFloat()
    
        private val ID_BYTES: ByteArray
    
    
        //dp转px
        fun dip2px(var0: Context, var1: Float): Int {
            val var2 = var0.resources.displayMetrics.density
            return (var1 * var2 + 0.5f).toInt()
        }
    
        init {
            ID_BYTES = ID.toByteArray(Key.CHARSET)
        }
    
        override fun transform(
                pool: BitmapPool, toTransform: Bitmap, outWidth: Int, outHeight: Int): Bitmap {
            val width = toTransform.width
            val height = toTransform.height
            val bitmap = pool.get(width, height, Bitmap.Config.ARGB_8888)
            bitmap.setHasAlpha(true)
            val canvas = Canvas(bitmap)
            val paint = Paint()
            paint.isAntiAlias = true
            paint.shader = BitmapShader(toTransform, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP)
            val rect = RectF(0f, 0f, width.toFloat(), height.toFloat())
            val radii = floatArrayOf(leftTop, leftTop, rightTop, rightTop, rightBottom, rightBottom, leftBottom, leftBottom)
            val path = Path()
            path.addRoundRect(rect, radii, Path.Direction.CW)
            canvas.drawPath(path, paint)
            return bitmap
        }
        
        override fun equals(other: Any?): Boolean {
            if (other is RoundCorner) {
                return leftTop == other?.leftTop && rightTop == other?.rightTop && leftBottom == other?.leftBottom && rightBottom == other?.rightBottom
            }
            return false
        }
    
        override fun hashCode(): Int {
            return ID.hashCode() + leftTop.hashCode() + rightTop.hashCode() + leftBottom.hashCode() + rightBottom.hashCode()
        }
    
        override fun updateDiskCacheKey(messageDigest: MessageDigest) {
            messageDigest.update(ID_BYTES)
        }
    
    
    }
    Glide.with(this).load("https://manhua.qpic.cn/vertical/0/07_22_36_afe651da2ab940d0e257a1ec894bd992_1504795010150.jpg/420")
                    .apply(RequestOptions.bitmapTransform(RoundCorner(this,leftTop = 20f, rightBottom = 20f)))
                    .into(iv)//实现左上角和右下角圆角

    实现的效果:


    3、实现一个角是圆角

    Glide.with(this).load("https://manhua.qpic.cn/vertical/0/07_22_36_afe651da2ab940d0e257a1ec894bd992_1504795010150.jpg/420")
                    .apply(RequestOptions.bitmapTransform(RoundCorner(this,rightTop = 20f)))
                    .into(iv)//右上角

    实现效果:


    展开全文
  • “Android Studio”拖拽了一个“ImageView”,但是始终不显示图片,对比了下范例发现区别在于:图片的引用方式 默认生成: app:srcCompat="@drawable/xxx" 其他范例: android:src=="@drawable/xxx" 更改之后运行...
  • 39、 继承的贡献值 40、CSS 可以添加背景颜色和背景图片,以及来进行图片设置。 background-color 背景颜色 background-image 背景图片地址 background-repeat ...
  • 单击餐厅名称将使用户进入有关该机构更详细页面,其中包括位置地图以及评论和图片列表。 用户也可以登录以添加评论,图片或添加到餐厅列表以进行评论。 建于 Nomster集成了以下内容: 入门 在您编码环境中,...
  • 我们做出这种奉献是为了广大公众利益,而不是损害我们的继承人和继任者。 我们打算将这种奉献作为一种公开行为,永久放弃根据版权法对该软件所有当前和未来权利。 本软件按“原样”提供,不提供任何形式...
  • 实现思路:(1)使用Fiddler抓包工具,找出为斗鱼APP颜值区提供数据URL(Json格式)(2)在items中定义需要记录相关信息(3)在spider中实现迭代爬取各主播信息(4)在Pipeline中通过继承内置ImagesPipeline...
  • 1:NPanel(继承JPanel实现.9.png图片的) public class NPanel extends JPanel{ private NinePatch np; private int skin = 0; int[] pad; public NPanel(){ //先执行构造函数,再paintComponent...
  • 在手机上缩放图片和拖动要用到什么?手指对不对 那么控件上什么事件和手机有关。View.OnTouchListener 对不对。 ok,那么先新建一个Class ··· public class BaseDragZoomImageView extends ImageView implements ...
  • 基于GUI的贪吃蛇游戏的设计 ...注:所有有关的图片的像素必须设置成一样的。而背景图片则根据图形界面的设计进行参数的设置 界面的设计 将所有预先准备的图片在IDEA中放到一个包里,并且在初始化的时候用publi
  • 刚做到一道题,有关继承的。为什么这道题输出结果不是7?没有电脑码字不方便,就只有图了。。 ![图片](https://img-ask.csdn.net/upload/201610/13/1476339381_268060.jpg)
  • 有关最新稳定版本,请参见y值最大crw-2.y-rhel-8分支。 此存储库托管CodeReady Workspaces程序集,该程序集主要继承Eclipse Che工件并重新打包其中一些工件: 与上游相比差异: 定制仪表板(图片,图标...
  • 首先要建一个 继承于UITextField 子类,并且重写一个跟图片有关的初始化方法,这只是为了 方便,不一定非要这么写; #import @interface LeftViewTextField : UITextField -(in
  • 【笔记整理】Glide 4.9.0 缓存机制

    千次阅读 2019-08-27 00:54:06
    Glide 类中与内存缓存有关的变量Glide#memoryCache,如果用户没有通过 GlideBuilder#setMemoryCache(MemoryCache) 设置,则默认为 LruResourceCache(继承自 LruCache)。 1. 从内存缓存读取图片资源 在 Engine#...
  • 还有一个bubble to display the information you want有关滚动位置信息。 You can almost customize all what you want设计 例子 默认 定制设计 自订图片 无气泡 要求 iOS 9.0以上 Xcode 9.0以上 安装 将与...
  • 一般在这个方法中,会有一些标示显示对象位置、大小、图形、图片等一切和显示有关的属性,在onDraw方法中根据这些属性重绘所有对象。因此,必须有这样一种机制:在每一个和显示有关的属性更改后,必须马上被调用...
  • Unity3d-UGUI特效之ImageSkew变形、倾斜效果

    千次阅读 热门讨论 2018-02-08 09:15:31
    这次在项目中,做动画时,想要多UI的图片做倾斜动画,比如进场有一定的斜度,然后又变回原来的样子。于是在网上搜索有关Image变形或倾斜的做法,后面找到根据文档发现可以通过继承Image来做一些修改,关键是在Image...
  • 尽我所知,除了文中特别加以标注和致谢地方外,论文中不包含其他人已经发表或撰写过研究成果,也不包含为获得东南大学或其它教育机构学位或证书而使用过材料。与我一同工作同志对本研究所做任何贡献均已...
  • 8.10暑假训练

    2019-08-10 22:01:27
    继承性 优先级 特点及其体现 伪类: -visited:被点击时触发效果 -houer:鼠标悬停触发效果 -active 鼠标长按时触发效果 input[focus] 输入框获取焦点效果 background有关: 设置颜色 设置图片路径及引用 ...
  • Filter过滤器

    2017-03-28 18:30:52
    1.Filter:  他得基本工能可以拦截jsp,servlet静态图片,文件等。 他工作原理: ...2.Filter体系结构 :常用有两点 接口和继承 : ...Filter :接口 必须实现接口里全部方法 ... 配置顺序有关
  • UIControl及其子类

    2016-02-18 01:26:00
    UIControl是有控制功能视图父类,只要跟控制有关的控件都是继承于该类,UIControl这个类通常我们并不直接使用,而是使用其子类,以下介绍一些它子类 UISlider:   UISegmentedControl:(当图片显示不出来...
  • 坐标值和图片的大小有关 2.本游戏制作流程包括哪些?有哪些要点? 流程: 1. 建立一个启动类 2. 建立一个游戏面板类,并在启动类中添加 3. 建立一个游戏数据类,在面板中使用 要点: 启动类(继承JFrame)中,...
  • java-多线程(一)

    2017-05-16 12:44:53
    引言 主要介绍多线程相关概念 进程和线程 线程是依赖于进程而存在。 A:进程 正在运行应用程序 B:线程 进程执行路径,执行单元 多线程两种方案: ... 有关多线程深入理解,用一个图片来进行说明:
  • 昨天没有做更新,原因是一直在看有关Gallery的内容,因为想做一个比较美观的图片浏览器,如果使用系统自带的Gallery类效果非常差,因此根据网上的总结,对Gallery类进行继承,进而对其中的效果进行自定义,可以实现...
  • game是继承了JPanel,主要逻辑也都在这里面, 因为我要在小JPanel里面画game里面Tetrominos[1],而且Tetrominos[1]是不断变化。我就在game里面定时器里面重复调用了方法,我觉得问题可能就出在这附近,...

空空如也

空空如也

1 2 3 4 5
收藏数 87
精华内容 34
关键字:

有关继承的图片