构造方法

this的用法

人走茶凉 提交于 2020-03-08 04:29:00
Java关键字this只能用于方法方法体内。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在“Java关键字static、final 使用总结”一文中给出了明确解释。并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。 package com.hxw.T2; public class ThisTester { private int i=0; //第一个构造器:有一个int型形参 ThisTester(int i){ this.i=i+1;//此时this表示引用成员变量i,而非函数参数i System.out.println("Int constructor i——this.i: "+i+"——"+this.i); System.out.println("i-1:"+(i-1)+" this.i+1:"+(this.i+1)); //从两个输出结果充分证明了i和this.i是不一样的! } // 第二个构造器:有一个String型形参 ThisTester(String s){ System.out.println("String constructor: "+s); } // 第三个构造器

Java语言程序设计-第10版notes

半城伤御伤魂 提交于 2020-03-07 16:59:59
第1章 计算机、程序和Java概述 部分章节小结 1、编程错误可以分为三类:语法错误、运行时错误和逻辑错误。编译器报告的错误称为语法错误或者编译错误;运行时错误指引起程序非正常结束的错误;而当一个程序没有按照预期的方式执行时,产生逻辑错误 。 第2章 基本程序设计 部分章节小结 1、拓宽类型不需要显式转换,缩窄类型必须显式完成。 123456 int i=9;double d=i;//缩窄类型转换double d=9.0;int i=(int)d; 2、计算机科学中,1970年1月1日午夜零点为UNIX时间戳。 第3章 选择 部分章节小结 1、除开赋值操作符的所有二元操作符都是左结合的,赋值操作符是右结合的。(此处的结合指的是结合律) 123456 //以下两个表达等价a-b+c-d((a-b)+c)-d//以下两个表达等价a=b+=c=5a=(b+=(c=5)) 第4章 数学函数、字符和字符串 部分章节小结 1、字符 ‘ ‘ 、t、 f、 r 和 n 都称为空白字符。 2、字符可以基于它们的Unicode码使用关系操作符进行比较。 第6章 方法 部分章节小结 1、程序模块化和可重用性是软件工程的中心目标之一。 2、方法可以重载,这意味着两个方法可以拥有相同的方法名,只要它们的参数列表不同即可。 3、方法抽象是把方法的应用和实现分离,用户可以在不知道方法是如何实现的情况下使用方法

Spring常用的三种注入方式

江枫思渺然 提交于 2020-03-07 12:55:39
Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入,setter注入,基于注解的注入。 构造方法注入 先简单看一下测试项目的结构,用maven构建的,四个包: entity:存储实体,里面只有一个User类 dao:数据访问,一个接口,两个实现类 service:服务层,一个接口,一个实现类,实现类依赖于IUserDao test:测试包 在spring的配置文件中注册UserService,将UserDaoJdbc通过constructor-arg标签注入到UserService的某个有参数的构造方法 <!-- 注册userService --> <bean id="userService" class="com.lyu.spring.service.impl.UserService"> <constructor-arg ref="userDaoJdbc"></constructor-arg> </bean> <!-- 注册jdbc实现的dao --> <bean id="userDaoJdbc" class="com.lyu.spring.dao.impl.UserDaoJdbc"></bean> 如果只有一个有参数的构造方法并且参数类型与注入的bean的类型匹配,那就会注入到该构造方法中。 public class

第七次发博不知道用什么标题好

核能气质少年 提交于 2020-03-07 02:15:01
一、this关键字,想起之前总是搞不懂this.name是where.name,嗯!第二个name就是形参name,所以这句话就是讲形参name的值传给成员变量name private void setName(String name ){   this.name=name; } 二、构造方法:1.没有返回值        2.名称要与本类名称相同(但是参数不一样,体现在 类型、个数、顺序)        3.如果不写构造函数,系统会自动生成无参无函数体的构造函数        4.构造方法的作用:为成员变量赋值        5.每个类至少有一个构造方法 来源: https://www.cnblogs.com/shi-yuan/p/10703700.html

Map<K,V>接口

与世无争的帅哥 提交于 2020-03-06 12:02:31
所在包: java.util.Map 类型参数: K - 此映射所维护的键的类型 V - 映射值的类型 所有已知子接口: Bindings , ConcurrentMap <K,V>, ConcurrentNavigableMap <K,V>, LogicalMessageContext , MessageContext , NavigableMap <K,V>, SOAPMessageContext , SortedMap <K,V> 所有已知实现类: AbstractMap , Attributes , AuthProvider , ConcurrentHashMap , ConcurrentSkipListMap , EnumMap , HashMap , Hashtable , IdentityHashMap , LinkedHashMap , PrinterStateReasons , Properties , Provider , RenderingHints , SimpleBindings , TabularDataSupport , TreeMap , UIDefaults , WeakHashMap public interface Map<K,V> 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。 此接口取代 Dictionary 类

Java编程的逻辑 (46) - 剖析PriorityQueue

≡放荡痞女 提交于 2020-03-06 07:02:15
本系列文章经补充和完善,已修订整理成书《Java编程的逻辑》,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接 : http://item.jd.com/12299018.html 上节 介绍了堆的基本概念和算法,本节我们来探讨堆在Java中的具体实现类 - PriorityQueue。 我们先从基本概念谈起,然后介绍其用法,接着分析实现代码,最后总结分析其特点。 基本概念 顾名思义,PriorityQueue是优先级队列,它首先实现了队列接口(Queue),与 LinkedList 类似,它的队列长度也没有限制,与一般队列的区别是,它有优先级的概念,每个元素都有优先级,队头的元素永远都是优先级最高的。 PriorityQueue内部是用堆实现的,内部元素不是完全有序的,不过,逐个出队会得到有序的输出。 虽然名字叫优先级队列,但也可以将PriorityQueue看做是一种比较通用的实现了堆的性质的数据结构,可以用PriorityQueue来解决适合用堆解决的问题,下一节我们会来看一些具体的例子。 基本用法 Queue接口 PriorityQueue实现了Queue接口,我们在 LinkedList一节 介绍过Queue,为便于阅读,这里重复下其定义: public interface Queue<E> extends

JavaSE!面向对象!!!!

情到浓时终转凉″ 提交于 2020-03-06 03:21:27
1. 面向对象的编程思想: 面向对象的编程思想就是把一个事物看成一个整体,把这个事物中的属性(特征)和功能(方法)表述出来。 面向对象的编程思想更贴近于人的正常思维方式。 面向对象的编程思想来源于生活服务于生活。 面向对象的编程思想中,一定会用到面向过程(以流程为基本单位,注重最后结果。)的编程思想。有缺陷:功之间有很强的关联。不利于程序的维护和扩展。 面向对象的特征: 抽象!! 封装!! 继承!! 多态!! 。 2. 对象 在现实生活中,具体存在的一个事物。 在java编程中,万事万物皆对象。 特点: 在java编程中,无论两个事物多么相近或是相似,他们永远都是两个不同的对象。 各种法律、规则制度也是一种对象。 对象的内存图解 1 1.在堆内存中开辟一个空间并分配地址 2.按照类的描述,在该空间中定义成员变量 并且有默认初始化值 3.加载成员函数进入方法区(只加载一次) 4.对象创建完毕 将空间地址赋值给相应的变量 5.变量(p1/p2)调用成员变量 先通过该变量所存储的地址去堆空间中找 然后在该空间中找相应的成员变量 6.变量(p1/p2)调用成员函数 直接去方法区中找该成员函数 将该函数加载进栈内存开始运行 为了方便区分哪个对象调用的该成员函数 由this这个关键字段 来区分 this主要存的是当前对象的地址 注意:当成员函数在操作变量的时候 先在当前函数的空间里找 局部变量

Java基础反射reflect

萝らか妹 提交于 2020-03-06 00:07:44
概述 能够分析类能力的程序成为反射 reflective 。反射机制的功能及其强大,再下面可以看到,反射机制可以用来: 在运行时分析类的能力 在运行时查看对象,例如,编写一个 toString() 方法供所有类使用。 实现通用的数组操作代码。 利用 Method 对象,这个对象很像C++中的指针函数。 Class类 在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识。这个信息跟踪着每个对象所属的类。 获取类字节码方式 Class.forName(); 静态方法调用 Class < ? > forName = Class . forName ( "path" ) ; 类型.class Class < ? > cls = Person . class ; 对象.class Person person = new Person ( ) ; Class < ? > cls = person . class ; 常用方法 // 返回描述类名为className的Class对象 static Class forName ( String className ) ; // 返回类的实例对象,调用的是默认无参构造方法 Object newInstance ( ) ; Constructor类 /** * 构造一个这个构造器所属类的新实例 * @param args

去除安卓自定义Dialog黑色背景,设置无边框,透明

僤鯓⒐⒋嵵緔 提交于 2020-03-05 20:00:01
我们在自定义Dialog的时候,往往会希望除去安卓系统定义背景和标题,以便于更好的显示我们自己想要的效果。 其实我们只需要注意几个地方就行了。 1.在Style文件的中定义Dialog的主题 < style name= "MyDialog" > < item name= "android:windowFrame" >@null </ item > < item name= "android:windowBackground" >@android:color/transparent </ item > < item name= "android:windowNoTitle" >true </ item > < item name= "android:windowIsFloating" >true </ item > < item name= "android:windowContentOverlay" >@null </ item > </ style > 主要是这句:<item name=" Android :windowBackground">@ android :color/transparent</item> 把windowBackground设置为透明 2.在自定义的Dialog构造方法中使用,如果你在DIalog的布局文件中去使用这个主题是没有作用的

Java——反射

谁说我不能喝 提交于 2020-03-05 01:35:56
文章目录 1、定义 2、反射机制的方法 1)、获取类对象 2)、获取类成员 获取类的构造方法 获取类的特定的构造方法 调用类的私有方法 调用类的私有字段,并修改值 3、Fastjson 将Java对象转化为JSON字符串 将JSON字符串转化为Java对象 注解符的使用 使用 ContextValueFilter 配置 JSON 转换 使用 NameFilter 和 SerializeConfig 1、定义 ​ java反射机制是说:在运行状态中,对于任意的一个类,我们都能知道它的所有属性和方法;对于任意的一个对象,我们都能够调用它的所有方法和得到所有属性。这种动态调用方法和动态获取属性的功能成为java语言的反射机制。 ​ 实际上,我们创建的每一个类都是Class对象,称之为类对象。 2、反射机制的方法 //创建一个类 package reflex ; public class Student { private int id ; private String name ; private String gender ; private String address ; public Student ( ) { } public Student ( String name ) { this . name = name ; } private Student ( String