`
incyanggan
  • 浏览: 34088 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Java菜鸟学习笔记--面向对象篇(三):构造器&重载

 
阅读更多

Java构造器



构造方法是一种特殊的方法,具有以下特点。
(1)构造方法的方法名必须与类名相同。
(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。
(4)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。如果已经写了任何有参构造器,编译器将不再添加任何构造代码。
(5)构造方法可以重载,以参数的个数,类型,或排列顺序区分。

示例

1.在创建对象时候完成初始化

class A
{
	private int age;
	private String name;
	
	public A(){}//无参构造函数,如果都不写系统会自动生成这个,但是如果写了任何构造函数,系统将不会自动生成
	public A(int a,String b)//构造函数,与类名相同,不写的话系统默认生成。没有返回值
	{
		System.out.println("构造函数被调用!");
		age=a;
		name=b;
	}
	public void show()//输出接口
	{
		System.out.print("age= "+age);
		System.out.print("name= "+name);
		System.out.println();	
	}

}
public class ConstTest
{
	public static void main(String[] agrs)
	{
		A one=new A(21,"yanggan");//1.new会创建并返回一个对象,然后调用构造函数。但是构造函数没有返回值
		one.show();
	}
	/*输出:
	构造函数被调用!
	age= 21name= yanggan
	*/
}




Java方法重载



重载方法是函数的一种特殊情况,为方便使用,Java允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同(每一个重载的方法都必须有独一无二的参数列表,这是编译器判断的依据),也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。
重载函数不能通过返回值判断!两个重载函数必须在下列一个或两个方面有所区别:
1.、函数有不同参数。
2、函数有不同参数类型



示例.

1.运用重载函数与非重载进行对比



//测试函数重载和非重载情况下
class A//不采用函数重载的类
{
	public int add2(int a,int b)
	{		
		return a+b;
	}
	public int add3(int a,int b,int c)
	{
		return a+b+c;
	}
	public int add4(int a,int b,int c,int d)
	{
		return a+b+c+d;
	}
	public double add2double(double a,double b)
	{
		return a+b;
	}

}
class B//采用函数重载
{
	public int add(int a,int b)
	{
		return a+b;
	}
	public int add(int a,int b,int c)
	{
		return a+b+c;
	}
	public int add(int a,int b,int c,int d)
	{
		return a+b+c+d;
	}
	public double add(double a,double b)
	{
		return a+b;
	}

}
public class ConstTest
{
	public static void main(String[] agrs)
	{
		A one=new A();
		
		System.out.println("1+2= "+one.add2(1,2));
		System.out.println("1+2+3= "+one.add3(1,2,3));
		System.out.println("1+2+3+4= "+one.add4(1,2,3,4));
		System.out.println("1.2+2.3= "+one.add2double(1.2,2.3) );
		//在访问方法时候容易混乱,刚刚在编码中甚至写错了add4与add2double~
		
		B two=new B();

		System.out.println("----------运用函数重载--------");
		System.out.println("1+2= "+two.add(1,2));
		System.out.println("1+2+3= "+two.add(1,2,3));
		System.out.println("1+2+3+4= "+two.add(1,2,3,4));
		System.out.println("1.2+3.5= "+two.add(1.2,3.5));
		//运用函数重载的优点不言而喻,相似功能函数名统一,
		
	
	}
	/*输出:
		1+2= 3
		1+2+3= 6
		1+2+3+4= 10
		1.2+2.3= 3.5
		----------运用函数重载--------
		1+2= 3
		1+2+3= 6
		1+2+3+4= 10
		1.2+3.5= 4.7

	*/
}













作者:YangGan
出处:http://blog.csdn.net/incyanggan
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名Yanggan(包含链接).


分享到:
评论

相关推荐

    菜鸟Java葵花宝典2017-2018

    《菜鸟Java葵花宝典2017-2018》是一本专注于Java学习与面试的资源集合,旨在帮助初学者系统地掌握Java编程语言并为面试做好充分准备。这本书可能涵盖了Java的基础知识、进阶特性、设计模式以及常见面试问题等内容。...

    菜鸟的SAP自学学习笔记

    ### SAP自学学习笔记知识点概述 #### 一、配置总体框架 **1.1 系统环境** - **定义**: 指的是SAP系统的基本硬件和软件环境。 - **重要性**: 正确配置系统环境是确保SAP系统正常运行的基础。 - **涉及内容**: - ...

    JAVA菜鸟面试题库

    综上所述,面对JAVA面试,面试者应当注重技术基础的学习与积累,并在此基础上提升自己的综合能力,包括但不限于沟通技巧、团队协作能力等。同时,了解当前市场的薪资水平和公司招聘偏好有助于更好地定位自己,为未来...

    C++学习笔记- 面向对象 .md

    内容是C++面对对象的,目录大致来源于菜鸟文档的C++面向对象,笔记是参考各种文章以及菜鸟文档改编的,内容包含C++类和对象(类定义和对象定义,类成员函数,类访问修饰符,友元函数,内联函数,this指针,静态成员...

    Java基础知识笔记详细版-菜鸟翻阅必备

    - 面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态三大特性。 - 平台无关性:通过Java虚拟机(JVM)实现了“一次编写,到处运行”的目标。 - 健壮性:具有自动垃圾回收功能,减少了内存泄漏等问题。...

    java学习类网站,让你有菜鸟变高手

    ### Java学习资源汇总:从入门到精通 #### 引言 随着互联网技术的快速发展与迭代,Java作为一门经典的编程语言,依然占据着重要的地位。对于初学者或是希望提升技能的人来说,选择合适的在线学习资源至关重要。...

    java学习1-3课笔记

    这份"java学习1-3课笔记"涵盖了初学者入门Java的基础知识,由张孝祥老师的课程内容整理而成,适合对编程感兴趣的菜鸟们作为学习参考资料。 1. **Java简介**: Java是由Sun Microsystems(现为Oracle Corporation的...

    Java学生管理系统——菜鸟

    - **面向对象编程**:Java是一种面向对象的语言,系统的核心会涉及类的设计,包括学生类、班级类、教师类等,每个类都会有自己的属性和方法。 - **控制结构**:如if-else语句、switch-case、for、while循环用于...

    Android studio1.3.1从菜鸟到高手--第一季-视频-百度盘

    根据提供的文件信息,我们可以推断出这是一套关于Android Studio 1.3.1的教学视频资料,主要面向初学者到进阶用户。接下来,我们将基于这些信息深入探讨相关的知识点。 ### Android Studio 1.3.1简介 Android ...

    基于Java语言教程&案例&相关项目资源

    - **集合框架**:学习List、Set和Map三种主要的数据集合,以及它们之间的区别。 4. **面向对象编程**: - **类与对象**:理解类与对象的基本概念及其关系,学会定义类和创建对象。 - **继承**:掌握类继承的概念...

    20210808-银河证券-交通运输行业:菜鸟网络业绩表现持续向好,京东航空获批筹建.rar

    标题中的“20210808-银河证券-交通运输行业:菜鸟网络业绩表现持续向好,京东航空获批筹建”表明这是一份由银河证券发布的关于2021年8月8日交通运输行业的研究报告,重点提及了菜鸟网络的业务发展情况以及京东航空的...

    JAVA初学者笔记 使用JAVA理解逻辑基础-菜鸟入门(简单易懂)

    Java提供了两个主要的技术开发平台:Java SE(标准版)用于桌面应用程序的开发,而Java EE(企业版)则针对网络程序和企业级应用。 要开始学习Java,你需要安装JDK(Java Development Kit),并配置相应的环境变量...

    C#制作麻将游戏源码,

    此外,“对刚学OO思想想俺一样的菜鸟或许有那么点帮助”暗示源码可能包含了一些面向对象编程(Object-Oriented Programming, OOP)的基础应用,如继承、封装和多态性。 【标签】:“winForm程序”说明这个游戏是...

    大数据开发资源.docx

    - **学习途径**:建议使用在线教程(如菜鸟教程)进行入门学习。 **1.2 SQL基础** - **学习目标**:熟悉SQL语法,能够熟练地进行数据查询和简单的数据分析。 - **学习途径**:同样可以通过在线教程或书籍进行学习...

    菜鸟学安卓 ----01之环境准备

    - **JDK(Java Development Kit)**:安装 JDK 1.7 或更高版本,因为 Android 应用主要使用 Java 语言编写。 - **Android SDK(Software Development Kit)**:包含了 Android 平台的各种工具和库文件,是开发 ...

    runoob菜鸟教程网站镜像

    - **适用对象**:主要面向编程初学者和技术爱好者。 - **应用场景**: - **自学**:利用runoob提供的资源进行自我提升。 - **备课**:教师可以借助这些资源准备课程材料。 - **项目参考**:开发者在项目开发过程...

    新版Android开发教程+笔记十一--可视化UI设计DroidDraw

    ### 新版Android开发教程+笔记十一--可视化UI设计DroidDraw #### 1. DroidDraw简介 DroidDraw是一款强大的Android GUI可视化设计器,能够帮助开发者轻松创建复杂的Android Layout XML文件。这款工具基于Java Swing...

Global site tag (gtag.js) - Google Analytics