`
johnnycmj
  • 浏览: 36788 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

05.面向对象(2)--函数方法

 
阅读更多

 

5、函数方法

5.1、方的重载

函数的重载就是在同一个类中允许同时存在一个以上的同名函数,只要它们的参数个数或类型不同即可。在这种情况下,该函数就叫被重载(overloaded)了,这个过程称为函数的重载(method overloading)。

例如:

	public class Test{
			public static void main(String [] args){
				int isum;
				double fsum;
				isum=add(3,5);
				isum=add(3,5,6);
				fsum=add(3.2,6.5); 
			}
		public static int add(int x,int y){
			reutrn x+y;
		}
		public static int add(int x,int y,int z){
			return x+y+z;
		}
		public static double add(double x,double y){
			return x+y;
		}
	}

 

5.2、构造函数

1.构造函数的特点:

具有与类相同的名称;
不含返回值;
不能在方法中用return语句返回一个值
构造方法在程序设计中非常有用,它可以为类的成员变量进行初始化工作,当一个类的实例对象刚产生时,这个类的构造方法就会被自动调用,我们可以在这个方法中加入要完成初始化工作的代码。
注意:在构造方法里不含返回值的概念是不同于“void”的,对于“public void Person()”这样的写法就不再是构造方法,而变成了普通方法,在定义构造方法时不能加了“void”,否则这个方法就不再被自动调用了。
例:

	class Person{
		public Person(){
			System.out.println("the constructor 1 is calling!");
		}
		private int age = 10;
	    public void shout(){
		    System.out.println(“age is ”+age); 
		}
	}
	class TestPerson{
		public static void main(String[] args){
			Person p1=new Person();
			p1.shout();
			Person p2=new Person();
			p2.shout();
			Person p3=new Person();
			p3.shout();
		}
	}

   结果:

the constructor 1 is calling!
age is 10
the constructor 1 is calling!
age is 10
the constructor 1 is calling!
age is 10

5.3 、构造方法的重载

构造和一般一样也可以重载:
	class Person{
		private String name=”unknown”;
		private int age = -1;
		public Person(){
			System.out.println(“constructor1 is calling”);
		}
	    public Person(String n){
	        name = n;
	        System.out.println("constructor2 is calling");
			System.out.println(“name is ”+name);
	    }
		public Person(String n,int a){
	        name = n;
	        age = a;
	        System.out.println(”constructor3 is calling”);
			System.out.println(“name and age is ”+name+”;”+age);
	    }
        public void shout(){
		    System.out.println(“listen to me!!”); 
		}
	}
	class TestPerson{
		public static void main(String[] args){
			Person p1=new Person();
			P1.shout();
			Person p2=new Person(”Jack”);
			P2.shout();
			Person p3=new Person(“Tom”,18);
			P3.shout();
		}
	}
 运行结果:
constructor1 is calling
listen to me!!
constructor2 is calling
name is Jack
listen to me!!
constructor3 is calling
name and age is Tom;18
listen to me!!

5.4、构造方法的一些细节

1).在Java的每个类里都至少有一个构造方法,如果程序员没有在一个类里定义构造方法,系统会自动为这个类产生一个默认的构造方法,这个默认构造方法没有参数,在其方法体中也没有任何代码,即什么也不做。
2).由于系统提供的默认构造方法往往不能满足编程者的需求,我们可以自己定义类的构造方法,来满足我们的需要,一旦编程者为该类定义了构造方法,系统就不再提供默认的构造方法了。
3).构造方法不能用private修饰。
分享到:
评论

相关推荐

    Web应用安全前端开发视频.zip

    11.Python类与面向对象.mp4 12.Django Web框架介绍.mp4 13.Django框架安装.mp4 14.Djangocms实战-1.mp4 15.Djangocms实战-2.mp4 16.Django Models模型原理.mp4 17.Django视图-后台管理-模板.mp4 18.DjangoBlog实战....

    Phthon学习视频.zip

    目录 01-走进python.flv 02-开始编程吧.flv 03-变量.flv 04-运算符-表达式.flv 05-数据类型-数字-字符串.flv 06-元组.flv 07-列表 .flv 08-字典.flv ...38-面向对象-1-类和对象.flv 37-MySQLdb.flv

    spring导入eclipse时少的spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.4.jar

    在Spring中,Objenesis与CGlib协同工作,主要用于初始化那些没有默认构造函数或者构造函数有特殊行为的类。当使用CGLIB生成代理对象时,Objenesis可以帮助快速实例化这些复杂对象,从而避免了传统反射方式可能导致的...

    js坦克大战改进版

    采用js面向对象、面向切面的方式实现的坦克大战游戏。通过jquery来操作dom。 文件描述: init.js --- 初始化的JS,初始化全局对象 Util.js --- 用到的一些公共方法的JS Panel.js --- 面板JS Steel.js --- 障碍物...

    IBM-ETP-java培训05.面向对象程序设计 1.ppt

    2. **封装**:封装是面向对象的三大特性之一,它将数据和操作数据的方法绑定在一起,隐藏内部实现细节,只对外提供公共接口。这样可以保护数据不受外部的不适当访问,提高代码的安全性和可维护性。 3. **继承**:...

    北京大学研究生软件工程课程第五章面向对象方法-概念与表示.ppt

    面向对象方法是软件工程中的一种重要编程范式,它基于对象和类的概念,强调数据的封装、继承和多态性。北京大学研究生软件工程课程的第五章深入探讨了面向对象方法的概念与表示,以下是对这部分内容的详细阐述: 1....

    (全)传智播客PHP就业班视频完整课程

    9-7 4.static关键字(静态方法) 面向对象编程三大特性① 9-7 5.面向对象编程三大特性② 9-7 6.面向对象编程三大特性③ 9-9 1.回顾 9-9 2.面向对象编程三大特性④ 9-9 3.面向对象编程三大特性⑤ 抽象类 9-9 4.接口 9-9...

    Java语言基础入门教程 Java实训教程 4.类构造函数-this-静态属性方法-instanceof运算符共55页.pptx

    这些知识点对于深入理解Java面向对象编程至关重要。 #### 二、类构造函数 构造函数是一种特殊的方法,主要用于初始化类的对象。构造函数的名称必须与类名完全一致,并且没有返回值。 - **构造函数特点**: - 函数...

    深入理解python视频教程-基础

    5-面向对象.wmv 6-模块.wmv 7-文件操作.wmv 8-文件读写指针操作.wmv 9-应用案例一.wmv 10-应用案例二.wmv 11-网络编程requests模块.wmv 12-网络编程socket编程.wmv 13-python调用c和c++模块.wmv 14-python...

    c# 面向对象 --用书.rar

    《C# 面向对象编程详解》 C# 是一种强大的、类型安全的编程语言,广泛用于构建各种类型的软件,尤其是Windows平台的应用程序。面向对象编程(Object-Oriented Programming,OOP)是C#的核心特性之一,它提供了一种...

    面向对象程度设计基础PPT课件1-12章打包(含习题解答).zip

    面向对象程度设计基础课件 04 第四章 函数.ppt 面向对象程度设计基础课件 05 第五章 类与对象.ppt 面向对象程度设计基础课件 06 第六章 复合数据类型.ppt 面向对象程度设计基础课件 07 第七章 继承机制.ppt 面向对象...

    2011年6月面向对象分析与设计试题B卷.doc附有详答案

    面向对象软件开发方法的重要性在于它能够更好地模拟真实世界的复杂性和变化,使得软件系统更加灵活、可扩展和易于维护。面向对象方法强调封装、继承和多态等原则,有助于提高软件的质量和可重用性。通过将问题分解成多...

    面向对象考试题

    - 如Java、C++等面向对象编程语言的出现极大地推动了面向对象方法的发展和应用。 **2. 基于UML的系统分析** - **UML(Unified Modeling Language)** — 统一建模语言 - UML是一种标准的图形化语言,用于软件...

    面向对象-构造函数-调用&内存图解

    当我们谈论“面向对象-构造函数-调用&内存图解”时,我们将深入探讨构造函数的工作原理以及它们如何影响内存分配。 首先,让我们理解什么是构造函数。在Java、C++或Python等面向对象的语言中,构造函数是一个与类...

    .Principles.of.Object-Oriented.Programming.in.JavaScript

    ### 面向对象编程(OOP)在JavaScript中的原则 #### 学习目标与概述 本书《面向对象编程在JavaScript中的原则》旨在帮助读者深入理解并掌握如何在JavaScript环境中运用面向对象编程(OOP)的概念和技术。对于那些...

    面向对象作业1-构造函数+运算符重载.docx

    **面向对象编程**是一种编程范式,通过将数据和处理这些数据的方法封装在对象中来实现程序设计。本题目中涉及的时间类就是一个很好的示例。 #### 二、类与对象 在C++中,**类**是用户自定义的一种数据类型,它不仅...

    ANSI-C实现面向对象 英文原著翻译

    这种方法不仅有助于加深对面向对象原理的理解,同时也为那些希望在限制严格的环境中应用面向对象技术的开发者提供了宝贵的参考。本书是一本非常有价值的指南,适合于想要探索面向对象编程精髓的C语言开发者。

    Object-oriented.Programming.with.ANSI-C

    尽管C语言最初并非为面向对象设计,但本书揭示了通过巧妙利用C语言特性,如结构体、指针、原型和函数指针,可以有效地模拟面向对象的关键概念。以下是基于该书标题、描述、标签和部分内容所提取的关键知识点: ### ...

Global site tag (gtag.js) - Google Analytics