Java学习笔记之---构造方法
Java学习笔记之---构造方法
(一)构造方法的特性
- 构造方法不能被对象单独调用
- 构造方法与类同名且没有返回值
- 构造方法只能在对象实例化的时候被调用
- 当没有指定构造方法时,系统会自动添加无参的构造方法,当有指定的构造方法时,系统不会再自动添加无参的构造方法
- 一个类可以有多个构造函数
- 子类的构造默认调用父类的构造
- 虽然父类的构造方法不能被继承,不能被重写,但是会影响子类对象的实例化
- 子类默认调用父类的无参构造方法,可以通过super调用父类允许访问的其他构造方法
(二)构造方法
(1)带参构造方法
public 构造方法名(数据类型 形式参数1,数据类型 形式参数2){ }
public Animal(String name){ this.name=name; System.out.println("我是有参构造方法1"); } public Animal(String name,int age ){ this.name=name; this.age=age; System.out.println("我是有参构造方法2"); }
(2)无参构造方法
public 构造方法名(){ }
public Animal(){ System.out.println("我是无参构造方法"); }
(三)构造方法的调用
通过实例化对象来调用
class AnimalTest{ public static void main(String[] args){ Animal a=new Animal("aa",1); System.out.println(a.name); } }
(四)构造方法实例
public class Animal {
private String name;
int age;
{
System.out.println("我是构造代码块");
}
public Animal(){
System.out.println("我是无参构造方法");
}
public Animal(String name){
this.setName(name);
System.out.println("我是有参构造方法1");
}
public Animal(String name,int age ){
this.setName(name);
this.age=age;
System.out.println("我是有参构造方法2");
}
public void setName(String nmae){
this.name=name;
}
public String getName(){
return this.name;
}
}
class AnimalTest{
public static void main(String[] args){
Animal a=new Animal("aa",1);
System.out.println(a.getName+":"+a.age);
Animal b=new Animal("bb");
System.out.println(b.getName());
Animal c=new Animal(); } }
运行结果:
我是有参构造方法2
aa:1
我是有参构造方法1
bb
我是无参构造方法
(五)构造代码块
- 构造代码块在成员变量下面
- 构造代码块比构造方法先执行
public class Animal { String name; int age; { System.out.println("我是构造代码块"); } public Animal(){ System.out.println("我是无参构造方法"); } public Animal(String name){ this.name=name; System.out.println("我是有参构造方法1"); } public Animal(String name,int age ){ this.name=name; this.age=age; System.out.println("我是有参构造方法2"); } } class AnimalTest{ public static void main(String[] args){ Animal a=new Animal("aa",1); System.out.println(a.name+":"+a.age); Animal b=new Animal("bb"); System.out.println(b.name); Animal c=new Animal(); } }
运行结果:
我是构造代码块
我是有参构造方法2
aa:1
我是构造代码块
我是有参构造方法1
bb
我是构造代码块
我是无参构造方法
Java学习笔记之---构造方法的更多相关文章
- 1.3(java学习笔记)构造方法及重载
构造方法,用于对象的初始化,在创建对象时被自动调用的特殊方法.构造方法名称与类名一致,通过new调用. 下面通过代码来详细讲解 public class Point { int x, y; publi ...
- Java学习笔记之——构造方法
构造方法:方法名和类名相同且没有返回值 1.作用 创建对象 对象初始化 2.普通方法的结构 权限修饰符 返回值类型 方法名(形参){ 方法体: } 3. 构造方法的结构 (1)结构 权限修饰符 方法名 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类
static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...
- 20145330第八周《Java学习笔记》
20145330第八周<Java学习笔记> 第十五章 通用API 通用API 日志:日志对信息安全意义重大,审计.取证.入侵检验等都会用到日志信息 日志API Logger:注意无法使用构 ...
随机推荐
- Win8Metro(C#)数字图像处理--2.16图像浮雕效果
原文:Win8Metro(C#)数字图像处理--2.16图像浮雕效果 [函数名称] 图像浮雕效果函数ReliefProcess(WriteableBitmap src) [函数代码] ...
- LoadLibrary方法加载运行DLL库
最近和另一家公司对接,要求用对方提供的测试程序测试我们做的DLL. 接到对方的测试程序,发现和我们以前调用DLL的方式不太一样.但我稍微看了一会代码也看懂其意思了,一天搞定了. 但其中也遇到些小困惑, ...
- c#利用IronPython调用python的过程种种问题
c#利用IronPython调用python的过程种种问题 小菜鸟一枚,最新学习了Python,感觉语言各种简短,各种第三方类库爽歪歪,毕竟之前是从c#转来的,看到Python的request类各种爽 ...
- mysql启动脚本
一台服务器上安装多个MySQL实例之后,实例的启动关闭不能再用service mysqld start/stop/restart命令,所以编写如下脚本用于启动关闭对应端口的实例. 这个脚本适用于多实例 ...
- A simple in-process HTTP server for UWP
原文 http://www.dzhang.com/blog/2012/09/18/a-simple-in-process-http-server-for-windows-8-metro-apps 简单 ...
- 如何让你的Sublime和Codeblocks支持C++11
闲来没事看了一下C++11,比起C++0x多了很多新功能,像auto变量,智能指针等,g++4.7以上版本也提供了对C++11的支持,但是,如何在你的编辑器上执行C++11代码呢? 刚开始以为用法和以 ...
- Spring之bean后处理器
Bean后处理器是一种特殊的Bean,容器中所有的Bean在初始化时,均会自动执行该类的两个方法.由于该Bean是由其它Bean自动调用执行,不是程序员手工调用,故此Bean无须id属性.需要做的是, ...
- Call调用webservice接口,使用命名空间和不使用命名空间的区别
生活中我们会遇到许许多多的奇葩问题,而这些问题又是我们不得不解决的. 我先用一段代码来引出我想要说的内容: import javax.jws.WebMethod; import javax.jws.W ...
- 【Go】使用压缩文件优化io (一)
原文连接:https://blog.thinkeridea.com/201906/go/compress_file_io_optimization1.html 最近遇到一个日志备份 io 过高的问题, ...
- .NET平台简介
前言: 看到一个名词:搜商(SQ),还挺有趣.讲的是在互联网时代,怎么能够快速找到自己所需信息或资源,成为一种能力,并将其提升到类似智商.情商的概念.在以后工作过程中,尽量提高自己获取.辨别.处理信息 ...