• 类的无参带参方法


    publi  返回值类型  方法名(){

      //方法的主体

    }

    return 表达式;

    方法返回值:如果方法有返回值,方法中必须使用关键字 return 返回该值,返回值类型为该方法所定义的返回值类型。

    强调: 方法中可以使用其他方法

    对象名.方法名();   调用不带参数的方法

    成员变量: 类的方法可以直接使用该类定义的成员变量,如果其他类的方法要调用它,必须先创建该类的对象,然后通过. 操作符来引用

    局部变量: 他的作用域仅仅在定义该变量的方法内,因此只有在这个方法中能够使用

    初始值不同   java会给成员变量一个初始值

                         java不会给局部变量赋初始值

    作用域不同:成员变量的作用于在整个类的内部都是可见的

                          局部变量的作用域仅限于定义它的方法

    在同一个类中,成员变量和局部变量同名时,局部变量具有更高优先级。 (就近原则)

    在while循环  do----while循环   if选择结构    switch选择结构中定义的变量作用于也仅仅在这些控制流语句块内。

    javaDoc注释

    /**

    *

    *

    *

    */

    javaDoc注释以/** 开头  以*/  结尾

    每个注释包含一些描述性的文本及若干个javaDoc标签

    javaDoc标签一般以 @ 为前缀,常用的 javaDoc标签如下

    @author ===作者     @version===版本标识    @parameter===参数及其意义    @since===最早使用该方法/类/接口的JDK版本

    @return===返回值    @throws===异常类及抛出条件

    如何生成javaDoc文档

    使用eclipse生成文档(javadoc)主要有三种方法: 
    1,在项目列表中按右键,选择Export(导出),然后在Export(导出)对话框中选择java下的javadoc,提交到下一步。 
    在Javadoc Generation对话框中有两个地方要注意的: 
    javadoc command:应该选择jdk的bin/javadoc.exe 
    destination:为生成文档的保存路径,可自由选择。 
    按finish(完成)提交即可开始生成文档。 
    2,用菜单选择:File->Export(文件->导出), 
    剩下的步骤和第一种方法是一样的。 
    3,选中要生成文档的项目,然后用菜单选择, 
    Project->Generate Javadoc直接进入Javadoc Generation对话框,剩余的步骤就和第一种方法在Javadoc Generation对话框开始是一样的。

    <访问修饰符>  返回值类型  <方法名> (<参数列表>){

                 //方法的主体

    }

     <访问修饰符>:指该方法允许被访问的权限,只能是public 、protected、private。

    返回值类型:如果方法不返回任何返回值,他应该声明为  void 类型。java对待返回值的要求非常严格,方法返回值必须与说明的类型相匹配。使用 return 语句返回值。

    <方法名> : 是定义的方法的名字,他必须使用合法的标识符

    <参数列表>:是传送给方法的参数列表。列表中各参数间以逗号隔开,参数列表的格式如下

    数据类型  参数1,数据类型  参数2,...,数据类型  参数n

    调用带参方法和调用无参方法的语法相同,但是在调用带参方法时必须传入实际参数的值。

    对象名.方法名(参数1,参数2...,参数n)

    先实例化对象,再调用方法

    传递时实参的类型、数量、顺序都要与形参一一对应。

    形参是定义方法时对参数的称呼,实参是在调用方法时传递给方法的实际值

    1.什么是值传递,什么是引用传递

    值传递是将需要传递的值作为一个副本传递出去,例如:

    int i = 5;

    int j = i;

    这里把i的值5拷贝了一份副本,作为j的值,结果是i = 5,j = 5.如果改变j的值,也就是拷贝出来的副本的值,

    这个改变和原来的值毫无关系,因此改变j的值不会对i的值产生影响.

    引用传递,是将引用对象的地址传递出去,例如:

    int *p,*p1;

    int i = 5; *p = i; //这里将i在内存中的地址赋与了指针p

    p1 = p;  //将指针p中的地址(即i的内存地址)赋与p1

    此时,改变i的值,

    i = 10;

    由于指针p,p1指向的地址都是i的地址,因此*p 和 *p1 的值都是10.

    2.Java中函数参数的传递形式

    Java中的数据分为基本数据类型和引用数据类型,我们来对这两种类型进行分析.

    对于基本数据类型来说,举个例子:

    int i = 10;

    add(i);

    void add(int temp){

    temp +=5;

    }

    这个很简单,我们都知道调用函数时将i的值10拷贝给函数的参数了,函数调用结束后i的值并没有发生变化,这是很明显的值传递过程,我们来看看在内存中的变化过程.

    首先在栈内存中为基本数据类型变量i分配内存空间并初始化值为10,然后开始调用函数add().执行add函数的时候,为temp变量分配栈内存空间,并将i的值拷贝给temp,在add执行之后,temp的值增加了5,随着add函数执行完毕,temp变量的生命周期结束了.可见,这个temp变量和i变量没有关系,temp变量可以随意命名,将其命名为i,也和之前申明的变量i毫无关系.

    我找来一幅图,可以看看,在函数运行的时候,只是临时分配产生了一个值与i相同的另外一个变量而已,一旦完成了值得拷贝工作,之后这两个变量就没有任何联系了.因此,对这个临时变量的操作不会对i产生任何影响.

     

    对于引用数据类型参数来说,举个例子:

    class Person {

    String name = "java";

    public void setName(String name){

    this.name = name;

    }

    }

     ---------------------------------------------------

     void changeName (Person p1){

    p1.setName("JavaScript");

    }

     ---------------------------------------------------

    public static void main (String[] args){

    Person p = new Person();

    changeName(p);

    }

    我们来看看这一过程中内存中发生的变化:

    首先在堆内存中创建了一个Person对象,然后在栈内存中创建了一个引用类型的变量p,p指向堆内存中的Person对象,即p的值为Person对象在内存中分配空间的首地址值.

    调用changeName()函数时,栈中再次创建一个引用类型的变量p1,然后将p中的值拷贝给p1,即p1也指向Person对象. 调用完成后,p1指向的Person对象的name属性被改变为javascript.由于p和p1指向同一个Person对象,因此p指向的Person对象的name值也变为javascript.

    这看起来类似于引用传递,但是这仍然是值传递,p1接受的值是p的值的拷贝,函数调用完成后,p的值完全没有改变,仍然是指向之前创建的Person对象,这就是值传递.

    整个过程中改变的是Person对象的属性name,由于p和p1都指向这个Person对象,因此p和p1产生了相同的变化,使得看起来像是进行了引用传递.

    如果是引用传递的话,那么p1接收的值将会是p的地址,那么p1将不会再指向Person对象,整个程序就会产生错误.

    可见,引用数据类型的参数仍然是进行值传递的,只不过这里传递的值是对象在内存中的首地址,在java中即为指向该对象的引用.而引用传递是直接将变量的地址传递给参数,很明显,这样参数接收到的值将不再指向特定的对象,整个程序将会产生错误,要传递地址的话,应该是传递Person对象的地址而不是p对象的地址.

    同样用图简单概括一下

    概括一下,java中函数参数的传递方式是值传递,不管参数是基本数据类型还是引用数据类型.

    在复杂的文件系统中,文件分门别类存储在不同的文件中解决了文件同名冲突的问题

    1.包允许将类组合成较小的单元(类似文件夹),易于找到和使用相应的类文件

    2.防止命名冲突,java中只有在不同包中的类才能同名

    3.包允许在更广的范围内保护类、数据和方法、可以在包内定义类

    java中提供包来管理类。声明包使用关键字  package、 导入包使用关键字  import

  • 相关阅读:
    Python之CVXOPT模块
    JavaScript之读取和写入cookie
    jQuery学习(2)ajax()使用
    JavaScript之使用AJAX(适合初学者)
    Jquery焦点图实例
    jquery-mobile表单提交问题
    程序员笔记|Spring IoC、面向切面编程、事务管理等Spring基本概念详解
    使用什么调试swoole程序
    swoole模块的编译安装:php编译安装swoole模块的代码
    TP5使用Redis处理电商秒杀
  • 原文地址:https://www.cnblogs.com/renshihao/p/7449393.html
Copyright © 2020-2023  润新知