java_方法使用细节


1.一个方法想要返回多个值

思考?一个方法如何返回多个值 返回数组

class AA{
public int[] getSumAndSub(int n1, int n2){
//.........
int[] res = new int[2];//创建一个数组
res[0] = n1 + n2;
res[1] = n1 - n2; return res;
}
}
2.返回类型可以使任意类型,包含基本数据类型和引用数据类型(数组,对象)
//如上
3.方法如果要求有返回数据类型,则方法体中最后的执行语句必须为 return 值;而且要求返回值类型必须和return的值类型一致或兼容
4.如果方法的返回值类型是 void ,则方法中可以没有retrurn语句 ,或者只写 return;
5.方法名遵循驼峰命名法,最好见名知意

可变参数


  1. 可变参数的实参可以是0个或任意多个
  2. 可变参数的实参可以是数组
  3. 可变参数的本质就是数组
  4. 可变参数可以和一个普通的类型的参数一起放在形参列表中,但必须保证可变参数在最后
  5. 一个形参列表中只能出现一个可变参数

变量的使用


全局变量(属性)可以不赋值,直接使用,因为有默认值,局部变量必须在赋值后,才能使用,因为没有默认值

细节

/*
1.属性和局部变量可以重名,访问的时候就进原则
2.在同一个作用域中,比如在同一个成员方法中,两个局部变量不能重名
3,属性的生命周期较长,;伴随着对象的创建而创建,对象的死亡而死亡,局部变量生命周期比较短,伴随着他的代码块的执行而创建,伴随着代码块法人借宿而死亡,即再一次方法法的调用过程中
4.作用域不同
全局变量:可以被本类使用,或其他类使用(通过对象调用
局部变量:只能在本类的对应方法中使用
5.修饰符不同
全局变量/属性可以加修饰符
局部变量不可以加修饰符
*/

构造器/构造方法


/*基本语法

​	[修饰符] 方法名(形参列表){

​		方法体;

}*/

public class AA{
public static void main(String[] args){
//当我们new一个对象时。直接通过构造器指定姓名和年龄
Person p1 = new Person("狄仁杰",20); Person p2 = new Person();
}
} /*
说明:
1.构造器的修饰符可以使默认的,也可以是public protected private
2.构造器没有返回值
3.方法名和类名必须一样
4.参数列表和成员方法一样的规则
5.构造器的调用,由系统完成
*/ class Person{
String name;
int age; //构造器
/*
1.构造器没有返回值,也不写void
2.构造器的名字和类名一样
3.(String pName, int pAge) 是构造器的形参列表,规则和成员方法一样
*/ //全参构造
public Person(String pName, int pAge){
name = pName;
age = pAge;
} //空参构造
public Person(){}
}

构造器使用细节

  1. 一个类可以定义多个不同的构造器,即构造器的重载。比如:我们可以再给Person定义一个构造器,用来创建对象的时候之指定人名,不指定年龄
  2. 构造器名和类名相同
  3. 构造器没有返回值
  4. 构造器是完成对象的初始化,并不是创建对象
  5. 在创建对象时,系统自动调用该类的构造方法
  6. 如果程序员没有定义构造器,系统会默认给类默认生成一个无参的构造方法(即默认构造方法 空参构造) public Person(){}使用javap指令反编译看看
  7. 一旦定义了自己的构造器,默认的构造器就覆盖了就不能在使用默认的无参构造了除非显示的定义一下Person(){}

对象引用流程分析

this的注意事项和使用细节


  1. this关键字可以用来访问本类的属性、方法、构造器

  2. this用于区分当前类的属性和局部变量

  3. 访问成员方法的语句:this.方法名(参数列表)

  4. 访问构造器的语法: this(参数列表) 注意只能在构造器中使用

  5. this不能在定义吧的外部使用,只能在定义的内部使用

    class T{
    
        //只能在构造器中访问构造器
    //注意
    //访问构造器语法必须放置在第一条语句
    public T(){
    //这里去访问构造器 T(String name, int age) 构造器
    this("jack", 100); System.out.println("T() 构造器");
    } public void f1(){
    System.out.println("f1() 方法.....");
    } public void f2(){ System.out.println("f2() 方法....."); //调用本类的 f1()
    f1();
    //或者
    this.f1();
    }
    }

访问修饰符


java_方法使用细节的更多相关文章

  1. java_方法引用

    什么是方法引用? 个人简述方法引用: 方法引用主要是针对已经有的方法来让目前的编程更加简洁 当我们想要使用一个接口的子类的时候,子类需要重写这个接口中的抽象方法, 被重写的这个方法参数列表固定,返回值 ...

  2. [转]JS学习总结-技巧、方法、细节

    变量转换 var myVar = "3.14159", str = ""+ myVar,// string类型 int = ~~myVar, // number ...

  3. OC 对象调用属性或实例变量或方法的细节。

    1.成员变量可以理解为所有在类的头上声明的,无论是@interface.@implementation下用大括号括起来或者是用@property声明的变量都可以称作这个类的 成员变量,只是在@impl ...

  4. c# Dictionary 中Keys.ToArray<>方法的细节测试

    /// <summary> /// dic.Keys.ToArray<>方法生成数组的顺序和dic中的顺序相同 /// </summary> public stat ...

  5. java_方法

    方法 1.1方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法. 如:小明同学在路边准备坐车来学校学习.这就面临着一件事情(坐车到学校这件事情)需要解决,解决办法呢?可采用坐公 ...

  6. Java_方法的调用②及案例

    语法格式: 方法名称([参数列表]); //注意:只能调用本类的方法 案例: class Method01{ public static void print(){ for(int i = 1; i ...

  7. Java_方法的基本语法格式

    [修饰符] 返回值类型 方法名称([参数列表]){ 方法体 } [ ]中的内容是可有可无的 暂时将方法的修饰符编写为 public static 返回值类型有两种情况 : 第一种:无返回值类型,也就是 ...

  8. Java_方法的调用①及案例

    方法调用的语法格式: 类名.方法名称([参数列表]); 调用过程: 案例: class Method01{ /*练习1:使用方法完成,输出5遍HelloWorld 方法语法格式: [修饰符] 返回值类 ...

  9. Java_方法的定义以及分类

    什么叫方法? 方法也叫做函数,实现某个功能 方法分类: 系统提供的方法: 常用的系统提供的方法:如:nextInt() next() nextDouble() print println()..... ...

  10. 【C/C++】qsort函数的使用方法和细节

    函数概述 qsort 为quick_sort的简写,意为快速排序,主要用于对各种数组的排序. 因为数组的元素可能是任何类型的,甚至是结构或者联合,所以必须高数函数qsort如何确定两个数组元素哪一个& ...

随机推荐

  1. 痞子衡嵌入式:主流QuadSPI NOR Flash厂商关于QE位与IO功能复用关联设计

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是几家主流QuadSPI NOR Flash厂商关于QE位与IO功能复用关联设计. 痞子衡之前写过一篇文章 <串行NOR Flash下 ...

  2. 【后端面经】MySQL主键、唯一索引、联合索引的区别和作用

    目录 0. 简介 1. 主键 2. 唯一索引 3. 联合索引 4. 索引对数据库操作的影响 5. 其他索引 5.1 普通索引 5.2 全文索引 5.3 前缀索引 6. 总结 7. 参考资料 0. 简介 ...

  3. 花朵识别系统Python+TensorFlow+Django+卷积神经网络算法实现

    一.背景 花朵识别系统,基于Python实现,深度学习卷积神经网络,通过TensorFlow搭建卷积神经网络算法模型,并对数据集进行训练最后得到训练好的模型文件,并基于Django搭建可视化操作平台. ...

  4. 【调制解调】PM 调相

    说明 学习数字信号处理算法时整理的学习笔记.同系列文章目录可见 <DSP 学习之路>目录,代码已上传到 Github - ModulationAndDemodulation.本篇介绍 PM ...

  5. Windows10 下 Neo4j1.5.8 安装教程

    前言 Neo4j 是一个高性能的.NOSQL 图形数据库,它将结构化数据存储在网络上而不是表中.基于磁盘的.具备完全的事务特性的 Java 持久化引擎,这里就不把他和常用关系型数据库做对比了.因为篇幅 ...

  6. Redis设计

    目录 过期键删除策略 持久化 RDB AOF AOF重写 主从复制 完整重同步和部分重同步 哨兵Sentinel 哨兵对redis服务器集群的监听 执行者选举 故障转移 选择新的主服务器流程 过期键删 ...

  7. windows CMD命令的一些使用方法及注意事项

    windows CMD命令的一些使用方法及注意事项 转载请著名出处:https://www.cnblogs.com/funnyzpc/p/17572397.html 一.执行路径或参数带中文.空格.特 ...

  8. Blazor中CSS隔离无法用在子组件内部

    Blazor的CSS隔离是个很好的东西,如图,只需添加一个与Razor组件同名的CSS文件,这个文件中的CSS样式只会在同名的Razor组件中使用. 原理是通过在dom元素添加一个代表标识符的属性 在 ...

  9. RAT蓝队自动化测试框架

    RAT蓝队自动化测试框架 介绍 RAT 是根据 MITRE ATT&CK 战术矩阵测试蓝队检测能力的脚本框架,由 python2.7 编写,共有 50 多种不同 ATT&CK 技术点和 ...

  10. Django: AttributeError: 'str' object has no attribute 'decode'

    Django安装Mysql驱动 pip install PyMySQL 在Django的工程同名子目录的__init__.py文件中添加如下语句 from pymysql import install ...