精华内容
下载资源
问答
  • 构造函数有没有返回值的总结

    千次阅读 2018-11-09 01:22:59
    构造函数有没有返回值的总结

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                    这个问题已经有人讨论过,最近在Java版再次被人提出来了。

    疑问在于如下的代码:
    1. String str = new String("content"); 
    new 的时候调用构造函数,返回给str;


    从语法上讲,构造函数不允许有返回值,就算是 void 也不行。

    这里的new 是调用构造函数,在堆里分配了一个String对象,并让str指向这个对象。实际上是那个 new 在起作用,而不是()在起作用。

    下面是因为原版说明,有兴趣的自己看吧
    For purposes other than simple initialization, classes can haveconstructors. Constructors are blocks of statements that can be used toinitialize an object before the reference to the object is returned bynew. Constructors have the same name as the class they initialize. Likemethods, they take zero or more arguments, but constructors are notmethods and thus have no return type. Arguments, if any, are providedbetween the parentheses that follow the type name when the object iscreated with new. Constructorsare invoked after the instance variables of a newly created object ofthe class have been assigned their default initial values and aftertheir explicit initializers are executed.

    We create the object sun refers to using new. The new construct is byfar the most common way to create objects (we cover the other ways inChapter 16). When you create an object with new, you specify the typeof object you want to create and any arguments for its construction.The runtime system allocates enough space to store the fields of theobject and initializes it in ways you will soon see. When initialization is complete, the runtime system returns a reference to the new object.


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


    当然
    1. public Long String(){ }
    这个算一个普通的方法,虽然和类重名,但却是合法的普通方法,而不是构造方法了。

    如下的类可以正常编译并运行,结果正确。请注意构造方法里面的return;
    1. public class T {
    2.   public T() {
    3.     return; // 请注意这里的return哦,这是合法的语句
    4.   }
    5.   public String T() {
    6.     return "特殊的方法,和类名相同";
    7.   }
    8.   public static void main(String[] args) {
    9.     System.out.println(new T().T());
    10.   }
    11. }

    从另一个角度看,正是因为构造函数没有返回值才需要这么写:
    1. String str = new String("content"); 

    否则,如果有返回值,应该如下写:
    1. String str = String("content"); 
    当然了,那个String是一个普通的方法,不再是构造方法了。原因看前面的例子。



    结论:
       构造函数/方法/构造器, 没有返回值。以后就别讨论这个了,呵呵。


    讨论地址: http://topic.csdn.net/u/20080901/22/f44c4818-9a39-46c2-8a24-0e6dce9dc800.html
















    <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>           

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • 构造函数有没有返回值

    万次阅读 多人点赞 2016-05-17 09:11:51
    昨天面试,他问我:构造函数有没有返回值? 我告诉他说:构造函数没有返回值。  他举了个反例:   String str = new String("content");  new 的时候调用构造函数,返回给str;  再问:没有方法...
    • 昨天面试,他问我:构造函数有没有返回值?

      我告诉他说:构造函数没有返回值。 
      他举了个反例: 
        String str = new String("content"); 

      new 的时候调用构造函数,返回给str; 

      再问:有没有方法确定知道构造函数有没有返回??

       

      这是 <The Java Programming Language>上的说法: 
      For purposes other than simple initialization, classes can have constructors. Constructors are blocks of statements that can be used to initialize an object before the reference to the object is returned by new. Constructors have the same name as the class they initialize. Like methods, they take zero or more arguments, but constructors are not methods and thus have no return type. Arguments, if any, are provided between the parentheses that follow the type name when the object is created with new. Constructors are invoked after the instance variables of a newly created object of the class have been assigned their default initial values and after their explicit initializers are executed. 
      看最后一句话,构造方法是新创建的对象的实例变量缺省初始化以及显式初始化之后才执行的,也就是说在构造方法调用之前这个对象已经存在了,更谈不上你例子中的构造方法返回一个对象引用了。

       

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

    展开全文
  • 函数有返回值) 和 存储过程(一定不能有返回值)的区别是:有无返回值! 查看所有存储过程和函数: select name from mysql.proc where db=‘stu’ and type=‘function’ select name from mysql.proc where ...

    函数(有返回值)   和   存储过程(一定不能有返回值)的区别是:有无返回值!

    查看所有存储过程和函数:

    select name  from  mysql.proc where  db=‘stu’  and type=‘function’

    select name  from  mysql.proc where  db=‘stu’  and type=‘procedure’

     

    查看存储过程和定义的函数:

    show create function  函数名;

    show procedure  存储过程名;

     

    查看存储过程和函数的信息:

    show function  status   [like   '  '];

    show procedure   status   [like   '  '];

     

    删除 : drop  function/procedure  if exists   函数名;

    一、函数

    1.1   没有形参的函数

    delimiter  $$          (将函数语句中的分隔符先由‘;’改为‘$$’)

    create function  函数名( ) returns  返回值类型  (不是return)

    begin

            函数体;               (函数语句集,使用@  定义变量)                              

            return  val;                                                                              (只能是一个值)    

    end  $$

    delimiter  ;                                                                                     (将函数语句中的分隔符再改回‘;’)

     

    select   函数名( );                                                                         -------------------直接调用函数 即可得到返回值

     

    变量定义:

    用户变量(相当于全局变量),在函数外边定义;例如   set  @s=1;set表示赋值的意思。

    局部变量在函数内部定义,例如  declare a[变量名] int[变量类型];

     局部变量的赋值方式有 2 种:set s=(select  语句)    或者      select 语句 into a[变量名];

     

    查看变量:select  @s;(相当于print)

    1.2 包含形参的函数

    create function  函数名(形参名1   类型1,形参名2   类型2) returns  返回值类型 

    函数体中使用的函数语句集,例如:

                   select age from table91 where id= 形参名1          

     

    调用:函数名(实参1,实参2);

    二、存储过程(用的比函数多)

    2.1 无参数存储过程

    将函数中function改为procedure 即可,且无返回值!

    调用:call 存储过程名();

    2.2 有参数的存储过程

    存储过程的参数分为三类(输入in;输出 out;即可输入有可以输出 inout)

    in(只能进去):          外部传递给形参的值在存储过程内部可以直接使用;

                                          存储过程函数的内部对形参的修改不影响外部的实参值。

     

    out(只能出来):        外部实参传递给形参的值在存储过程内部不可用;

                                         外部调用函数时 ,必须传入变量,传常量会报错!

                                         存储过程函数的内部对形参的修改会影响(修改)外部的实参值。

     

        例如 create procedure proc_name (out   age    int)

     

     

    展开全文
  • 拥有返回值函数 目录导航 JS 函数 函数的声明 &amp; 调用 声明 function simple() { console.log("这是一个无参函数"); } 调用 在方法声明之后,可以直接调用 simple(); ...

    目录

    JS 函数

    函数的声明 & 调用

    • 声明
    function simple() {
        console.log("这是一个无参函数");
    }
    • 调用

    在方法声明之后,可以直接调用

    simple();

    输出结果:

    这是一个无参函数

    有参函数

    有时,我们需要传入参数,作为

    • 声明
    /**
     * 说明:传入姓名,向你问好
     * @param name 名称
     */
    function sayHello(name) {
        console.log("Hello, "+name);
    }
    • 调用
    sayHello("ryo");

    结果:

    Hello, ryo

    拥有返回值的函数

    有时,我们需要获取函数执行的结果。

    • 声明
    /**
     * 说明:计算2个数的和
     * @param numOne 加数
     * @param numTwo 被加数
     * @return 和
     */
    function add(numOne, numTwo) {
        return numOne + numTwo;
    }
    • 调用
    var sum = add(10, 20);

    结果为

    30

    目录导航

    目录导航

    展开全文
  • html> html> head> meta charset="UTF-8"> title>无参函数title> script type="text/javascript"> /** * 无参函数 */ function print() { document
  • 常成员函数,它的形式是在成员函数后面加上const修饰,它是为了防止特定函数改变本类对象的数据成员而产生的,目的就是保护数据成员。在常成员函数中,你不能改变数据成员的值,你也不能在常成员函数中调用非常量...
  • 关于C语言函数的默认返回值

    千次阅读 2019-09-05 21:37:38
    C语言函数默认返回值 int型函数运行无误默认返回值为1,而float默认返回值函数中最后一个操作过的float变量的值. #include <stdio.h> int foo1() { int i, j, k; i = 3; j = 2; k = 5; } float foo2() ...
  • 定义:指针函数是一种返回值为指针的函数。 但是这么写很不清晰。 举例: A *createA();声明了一个返回值为指向A类型(即class A)的指针,参数列表为空的函数 #include<iostream> using namespace std; class A...
  • javascript函数中的返回值

    千次阅读 2016-11-08 14:16:04
    其实,如果我们没有使用return,js的函数也是有返回值的,它默认的返回值就是undefined,笔者曾经就这样一个错误,误将一个没有返回值函数赋值给一个变量,结果在调用的时候,一直返回undefined,笔者百思不得其...
  • if判断后,将执行代码的最后一个表达式的值作为返回值返回 注意,这里不需要特意的去用return去将值返回val s13 = if (true) { "zhang" }
  • 今天小编就为大家分享一篇python在回调函数中获取返回值的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 构造函数可以有返回值

    千次阅读 2012-06-10 12:27:59
    解决问题的方式很多,你可以通过其他方式去实现你的需求,没什么什么解决不了的问题的~ =================== 1. 构造方法的特征 • 它具有与类相同的名称; • 它不含返回值; • 它不能在方法中用 ...
  • scanf 函数有返回值

    千次阅读 2018-09-26 14:14:49
    对,scanf 函数有返回值,今天看到段程序如下,才知道 scanf 函数有返回值: while (sxanf("%d", &amp;x) == 1) { statement; } scanf 函数返回值反映的是按照指定的格式符正确读入的数据的...
  • CSDN论坛上很多人在讨论Java的构造函数是否有返回值这个问题,这里我说说我对构造函数的理解 String str = new String("123"); 这句话中一个new指令,String类中构造函数。 首先要确定类对象是由谁创建的,...
  • function 函数和return返回值

    万次阅读 2018-08-23 17:13:38
    function 函数和return返回值 可以用来封装代码,它里面的代码不会立即执行 需要使用 函数名() 来调用里面的代码 语法:function 函数名 ([形参1,形参2,.....形参n]) { 语句....... } 函数名(); ------&...
  • 有返回值函数

    千次阅读 2015-10-23 17:41:44
    结果又是调用者想用来得到的,就需要有函数返回值! 怎样让函数有返回值? 1)确定要返回的值的类型  2)修改函数返回值类型为你想要返回值的类型(如将之前的void改为int)  3)在函数内使用 return 表达式 ...
  • 函数返回值

    万次阅读 多人点赞 2019-06-30 18:52:19
    1.什么是函数返回值? print 和 return 的区别,print 仅仅是打印在控制台,而 return 则是将 return 后面的...如果一个函数没有 reutrn 语句,其实它一个隐含的 return 语句,返回值是 None,类型也是 ‘None...
  • js匿名函数作为函数参数 (返回值作为另一个函数的参数)
  • bat函数调用 带返回值

    千次阅读 2019-07-27 12:37:00
    bat 脚本之 使用函数 摘自:... ...bat函数返回值 综述 Windows bat脚本是一种解释性的脚本语言,可以拿到做很多事情。对于稍简单的问题:比如通过注册表判断下档期机器的...
  • 1、函数定义 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。Shell 函数定义的语法格式如下: [function] funname [()]{ 函数体 [return int;] } 格式1: 简化写法,不写 function 关键字: ...
  • java中返回值的函数中throw new exception会给函数返回值吗?返回值是什么?
  • 看旋转编码器程序的时候,遇见了一些关于函数返回值的函数,感觉很懵逼,就百度了一下C语言函数调用,感觉写的挺好的, 原链接:http://c.biancheng.net/view/204.html   通常我们希望通过函数调用使主调函数能...
  • 之前说完函数的定义以及调用,接下来看看带参数的函数以及带返回值的的函数~\(≧▽≦)/~  带参数的函数  之前讲了函数的基本用法,接下来看看带参数的函数。  在函数中,参数可以无限多,函数之间用 "," 隔开就...
  • 【shell】shell获取函数字符串返回值

    千次阅读 2019-11-21 10:30:34
    shell获取函数字符串返回值 function func() { echo "stringA" } val="$(func)" echo $val

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,333,881
精华内容 533,552
关键字:

任何函数都有返回值