构造方法

构造方法

可紊 提交于 2019-12-14 02:24:27
构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面: 1.构造方法作用:(1).构造出来一个类的实例 (2).对构造出来个一个类的实例(对象)初始化。 2.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。 3.主要完成对象的初始化工作,构造方法的调用是在创建一个对象时使用new操作进行的。 4.类中必定有构造方法,若不写,系统自动添加无参构造方法。接口不允许被实例化,所以接口中没有构造方法。 5.不能被static、final、synchronized、abstract和native修饰。 6.构造方法在初始化对象时自动执行,一般不能显式地直接调用.当同一个类存在多个构造方法时,java编译系统会自动按照初始化时最后面括号的参数个数以及参数类型来自动一一对应。完成构造函数的调用。 7.构造方法分为两种:无参构造方法 有参构造方法 构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。 8.构造代码块:   (1)作用:给对象进行初始化,对象一建立就执行,而且优先于构造函数执行   (2)构造代码块和构造函数的区别:   构造代码块是给所有不同对象的共性进行统一初始化,构造函数是给对应的对象进行初始化 9.子类继承父类中,   **

Java学习笔记(面向对象下)

心不动则不痛 提交于 2019-12-13 23:14:17
面向对象(下) 类的继承 类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类称为子类,现有类称为父类,子类会自动拥有父类所有可继承的属性和方法。(用extends关键字) //定义Animal类 class Animal{ String name; //定义name属性 //定义动物叫的方法 void shout(){ System.out.println("动物发出叫声。"); } } //定义Dog类继承Animal类 class Dog extends Animal{ //定义一个打印name的方法 public void printName(){ System.out.println("name = "+name); //父类的name } } public class Test { public static void main(String[] args) { Dog dog = new Dog();//创建一个Dog类的实例对象 dog.name = "tony";//为Dog类的name属性赋值 dog.printName();//调用Dog类的printName()方法 dog.shout();//调用Dog类继承来的shout()方法 } } 运行结果 name = tony 动物发出叫声。 注:①只支持单继承,不允许多重继承

JAVA学期总结

喜你入骨 提交于 2019-12-13 22:42:48
JAVA学期总结 主要内容: (1)、基础语法:Java关键字,标识符,类型转换、直接量、变量、循环语句(if,for,switch)、方法、运算符、递归。 (2)、面向对象编程(重中之重):面向对象设计思想、对象与内存(重点)、方法重载、对象创建使用、abstrsct的使用、final的使用、super的使用、static的使用、package和import的运用、对象 转型、多态、抽象类、接口等基本的知识点。 (3)、异常处理:try{...}catch(Exception e){...}、异常的分类、方法异常的抛出、自定义异常。 (4)、数组:基本的数组操作、二维数组的使用。 (5)、常用类:String类、StringBuffer类、Math类、File类等等。 (6)、文件与数据流:输入流 java.io.InputStream 、输出流 java.io.OutputStream,带缓存的输入流和输出流BufferedOutputStream、 BufferedOutputStream、带缓存的读写器BufferedWreter BufferReader (7)、线程:线程的两种实现方式,Synchronized关键字——同步,死锁等问题。 (8)、JDBC,MySQL,记事本操作。 2. Java 继承 Java面对对象具有三大特性: 继承

spring@value取不到值的几种情况

£可爱£侵袭症+ 提交于 2019-12-13 20:34:31
一,spring组件重写构造方法,在构造方法中引用@value为null 由于spring实例化顺序为先执行构造方法,再注入成员变量,所以序为先执行构造方法,再注入成员变量,所以ing实例化顺取值为null 解决办法为:再写一个常量类,在常量类中引用@value,再在构造方法中引用常量类的变量即可。 二,调用spring组件时使用new对象,而不是@Autowired 三,使用final或static修饰成员变量 四,spring mvc中引用@value为null spring mvc是spring的子容器,需要在两个配置文件中都导入配置文件 <context:property-placeholder location="classpath:jdbc.properties" ignore-unresolvable="true"/> 来源: 51CTO 作者: 兜里有佩 链接: https://blog.51cto.com/jtech/2114686

课程总结

随声附和 提交于 2019-12-13 14:24:44
java课程学习总结    (一)java须知   1.java语言与c语言有许多相似点,但又有很大的区别。java源程序主要有5部分组成:package语句(用来定义程序所属的包,放在程序的最前面,可省略)、import语句(用来引入其它包中的类,放在类定义之前)、类(class是定义类的关键字,类是整个源程序的核心部分)、方法(每个java程序只允许有一个main()主方法)、语句(语句有复值语句、调用方法语句和对象定义语句等,每条语句占一行,以分号结束)   2. 标识符、注释与c语言相同。  3.注意代码书写的规范性和速度性:类名首字母大写,变量、 main()主方法语句和方法及对象的首字母小写。但在c#中main()主方法都是大写的   4.掌握循环语句结构。     (二)java面向对象(oop)(类与对象,继承抽象类与接口)   1. oop的三大特性:在oop中,现实世界的所有事物都成为对象。  (1)封装:将对象的数据和方法结合,由方法将对象的数据实现,并实现对象的数据隐藏。   (2)继承:子类继承父类的变量和方法,实现代码的重用。具有传递性。   (3)多态:对外一个接口,内部多种实现。使程序具有可扩展性,可维护性。   2.类:是对某一类事物的描述,是抽象的、概念上的定义;   对象:是对类的具体实现,可以说是个实例。在使用类之前必须先定义再声明并创建对象

课程总结

吃可爱长大的小学妹 提交于 2019-12-13 11:53:57
一.认识JAVA (1)以前对java一点认识都没有,通过书本简单的了解了java的发展过程,还有他的开发工具JDK的发展历程,了解到java的开发放心,java语言的特点,可移植性、面向对象、解释型、多线程处理能力、安全性。 Java程序的运行机制和Java虚拟机,Java中所有程序都是在JVM上运行的,所有的class文件都是在JVM上运行。知道如何搭建Java开发环境,知道JDK的安装与配置,实现了第一个Java程序,了解到了classpath属性的作用,path是操作系统的环境属性,指的是可以执行命令的程序路径。classpath是所有*.class文件执行的路径,Java命令执行时将利用此路径加载所需要的*.class文件 知道Java程序如何注释,在要注释的内容开头用/*标明,结尾用/*标明,认识Java中的标识符,标识符不能以数字开头,也不能是Java中的保留关键词,了解到了Java当中的关键词,变量跟常量的声明 二.面向对象的基本概念 (1)对于面向对象的程序设计有三个主要特征:封装性,继承性,多态性。 封装性 为属性封装:private 属性类型 属性名称; 为方法封装:private 方法返回值 方法名称(参数列表){} 构造方法 1.构造方法的名称必须与类名称一致 2.构造方法的声明处不能有任何返回值类型的声明 3.不能再构造方法中使用return返回一个值

Java设计模式之单例模式

时光总嘲笑我的痴心妄想 提交于 2019-12-12 23:57:41
文章目录 1.概述 2.实现单例模式的两种方法 (1)饿汉单例模式 (2)懒汉单例模式 3.单例模式的优点 4.单例模式使用场景 5.单例模式注意事项 1.概述 什么是单例模式 定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例 单例模式包括: 1.私有的构造方法 2.指向自己实例的私有静态引用 3.以自己实例为返回值的静态的公有方法 2.实现单例模式的两种方法 单例模式根据实例化对象时机的不同分为两种:一种是饿汉单例模式,一种是懒汉单例模式。饿汉单例模式在单例类被加载的时候,就实例化一个对象交给自己使用;懒汉单例模式在调用取得实例方法的时候才会实例化对象。 (1)饿汉单例模式 public class Single { private Single ( ) { } //私有构造方法 private static final Single s = new Single ( ) ; //指向自己实例的私有静态引用 public static Single getInstance ( ) { //以自己实例为返回值的静态的公有方法 return s ; } } public static void main ( String [ ] args ) { Single s = Single . getInstance ( ) ; } (2)懒汉单例模式 public

反射

风流意气都作罢 提交于 2019-12-12 19:57:55
Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。 我们知道反射机制允许程序在运行时取得任何一个已知名称的class的内部信息,包括包括其modifiers(修饰符),fields(属性),methods(方法)等,并可于运行时改变fields内容或调用methods。那么我们便可以更灵活的编写代码,代码可以在运行时装配,无需在组件之间进行源代码链接,降低代码的耦合度;还有动态代理的实现等等;但是需要注意的是反射使用不当会造成很高的资源消耗! //1、通过对象调用 getClass() 方法来获取,通常应用在:比如你传过来一个 Object // 类型的对象,而我不知道你具体是什么类,用这种方法   Person p1 = new Person();   Class c1 = p1.getClass(); //2、直接通过 类名.class 的方式得到,该方法最为安全可靠,程序性能更高 // 这说明任何一个类都有一个隐含的静态成员变量 class   Class c2 = Person.class; //3、通过 Class 对象的 forName() 静态方法来获取,用的最多, // 但可能抛出 ClassNotFoundException 异常   Class c3 = Class

java基础知识总结

邮差的信 提交于 2019-12-12 16:55:22
很多初学java的新人不知道哪些java基础知识必须掌握,收集一些java基础知识精华总结分享给大家。 一.java基础知识精华总结 (1) 非静态对象的初始化 在创建对象时,对象所在类的所有数据成员会首先进行初始化。 基本类型:int型,初始化为0。 如果为对象:这些对象会按顺序初始化。 ※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。 构造方法的作用就是初始化。 (2) 静态对象的初始化 程序中主类的静态变量会在main方法执行前初始化。 不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时 未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。 (1) 主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。 (2) 主类静态成员的初始化。 (3) 主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类的默认构造 方法前,先进行对此超类进行非静态对象的初始化。 (4) 主类非静态成员的初始化。 (5) 调用主类的构造方法。 (1) 类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。 (2) 在一个构造方法中,只能调用一次其他的构造方法,并且调用构造方法的语句必须是 第一条语句。 (1)

好程序员大数据实用教程之面向对象进阶

别等时光非礼了梦想. 提交于 2019-12-11 15:20:31
好程序员大数据实用教程之面向对象进阶:包的创建与使用 是对一个程序中指定功能的部分代码进行包装 ####构造方法 是一个方法 特殊点: 构造方法没有返回值,不是指的返回值类型是void,而是根本就不写返回值类型 方法名字和类名相同 构造方法不能用static来修饰 构造方法调用的时机: 通俗来讲:是在实例化一个对象的时候调用的 一般情况下,我们在构造方法中做什么: 对对象的某一些属性进行初始化赋值操作 实例化对象的过程: Person xiaoming = new Person(); new : 表示在堆上开辟空间 执行非静态代码段 然后再执行构造方法: 在构造方法中调用其他的构造方法 可以使用this()的方式来调用其他的构造方法 注意事项: this() 必须写在构造方法的第一行 不能循环调用 无参构造方法需要注意的问题 如果一个类中没有写构造方法,此时这个类具有一个默认的public权限的无参构造方法 如果一个类中写构造方法了,此时这个默认的public权限的无参构造方法将不再提供 代码块 非静态代码段 静态代码段 static { } // 当这个类第一次被加载到内存中的时候执行 // 当你第一次使用这个类的时候执行(实例化对象、调用静态方法...) private关键字与属性封装 是一种编程思想: 狭义上的封装: ​ 一个类中的某一些属性,我们不希望外界直接访问。