一、方法

1、方法的定义

  方法也叫函数,就是一个能独立完成某个功能的一段代码。方法可以看作一个整体。

语法:

修饰符  返回类型 方法名字(数据类型  变量名,数据类型 变量名,……[形式参数(0个到n个)]){
在方法的代码块区域返回结果值的语法: return 返回和方法返回类型相同的值;
}

注意:

1、方法的返回类型和方法名称必须定义。

2、在一个类中不能同时存在相同名称和参数类型个数一样的方法。(参数顺序可以不一样)

3、方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如 addTicket();

优点:使程序变得更简短清晰。有利于维护。提高开发的效率。提高了代码的重用性

2、修饰符

  修饰符用来定义类、方法或者变量,通常放在语句的最前端。

1、访问修饰符 (4种)

private (私有化,范围最小): 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

default (即缺省,什么也不写,默认的):在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

protected (继承相关): 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

public (公共的,范围最大): 对所有类可见。使用对象:类、接口、变量、方法。

2、非访问修饰符

static 修饰符,用来修饰类方法和类变量。

  • static 变量

  static 静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。常和 final 结合一起来声明常量

  • static 方法

  static 声明独立于对象的静态方法。静态方法不能使用类的非静态变量

final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

  • final 变量

  注意:变量能被显式地初始化并且只能初始化一次。被声明为 final 的对象的引用不能指向不同的对象。但是 final 对象里的数据可以被改变。也就是说 final 对象的引用不能改变,但是里面的值可以改变。

  • final 方法

  类中的 final 方法可以被子类继承,但是不能被子类修改。声明 final 方法的主要目的是防止该方法的内容被修改

  • final 类

  final 类不能被继承,没有类能够继承 final 类的任何特性。

abstract 修饰符,用来创建抽象类和抽象方法。

  • abstract 抽象类

  抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。

  抽象类的使用场景: 一般作为父类(基类,模板类),模板方法模式

  • abstract 抽象方法

  抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。抽象方法不能被声明成 final 和 static。任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。

synchronizedvolatile 修饰符,主要用于线程的编程。

  • synchronized 关键字声明的方法同一时间只能被一个线程访问。synchronized 修饰符可以应用于四个访问修饰符。
  • volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。

2、方法的调用

  Java 支持两种调用方法的方式,根据方法是否有返回值来选择。

  1、当方法返回一个值的时候,方法调用通常被当做一个值。

 public class Test1 {
public static void main(String[] args) {
int sum = add(6, 6);
System.out.println(sum);
} public static int add(int a, int b){
int sum = a + b;
return sum;
}
}

  2、如果方法返回值是void,方法调用一定是一条语句。

 System.out.println("move on");

3、方法的重载(overload)

  方法重载:是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数列表(类型、个数、顺序)参数类型、参数个数、参数顺序、只要有一个不同。

  如果一个类中存在了多个名字一样的方法而编译不报错,那么肯定就是重载

 public class Overload {
/**
* 方法的重载,参数个数不同
* @param a
* @param b
*/
public static void add(int a, int b){ } public static void add(int a, int b, int c){ } public static void add(int a, int b, int c,int d){ }
}

二、数组

1、数组的定义

  java数组是用来存储固定大小的同类型元素。相当于一个变量容器,存放多个数据

2、创建数组

1、动态创建数组

  声明后立即赋值创建,还可以 先声明再赋值

语法格式:数据类型 [] 数组变量名 = new 数据类型[数组长度];

 public class Test {
/**
* 动态创建数组
*/
@Test
public void testList(){
int[] list = new int[2]; //创建数组
list[0] = 1; //存放数据
list[1] = 2; System.out.println(list.length);
}
}

2、静态创建数组

  在创建数组的时候把已知的元素直接一次性放进去

语法格式:

  • 数据类型  []  数组变量名 = new 数据类型[] {多个以英文逗号分隔的数据};
  • 数据类型  [] 数组变量名 = {多个以英文逗号分隔的数据};
 public class Test1 {
/**
* 静态创建数组
*/
@Test
public void test1(){
int[] list1 = new int[]{1, 2};
int[] list2 = {3, 4, 5};
System.out.println(list1.length);
System.out.println(list2.length);
}
}

3、多维数组

  多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。

 public class ArrayTest {

     public static void main(String[] args) {
int[] a = {1, 2, 3};
int[] b = {4, 5, 6};
int[] c = {7, 8, 9}; int[][] arr = {a, b, c}; //创建二位数组 //遍历二维数组
for (int i = 0; i < arr.length; i++) {
int[] m = arr[i];
for (int j = 0; j < m.length; j++) {
System.out.print(m[j] + " ");
}
System.out.println();
/*输出结果:1 2 3
4 5 6
7 8 9 */
}
}
}
 

最新文章

  1. Cosh.3
  2. 两台Linux主机之间文件的复制
  3. RNN 入门教程 Part 2 – 使用 numpy 和 theano 分别实现RNN模型
  4. Java_DES 加密和解密源码
  5. 小觑数据库(SqlServer)查询语句执行过程
  6. CentOS6.5菜鸟之旅:中文编辑器忍痛放弃Sublime
  7. [MAC] mac系统如何显示和隐藏文件
  8. ArcGIS API for Silverlight之配准JPG图片地图文字倾斜解决方案
  9. 浅谈Objective-C编译器指令
  10. IFTT-意大利金融交易税
  11. 详细,Qt Creator快捷键大全,附快捷键配置方法
  12. iOS之网络数据下载和JSON解析
  13. Ubuntu14.04上安装openGL
  14. [转载] 应用于负载均衡的一致性哈希及java实现
  15. [51nod1709]复杂度分析
  16. codeforces 798c Mike And Gcd Problem
  17. Codeforces 429E Points and Segments
  18. mysql 字符集查看 设定
  19. 自动化批量管理工具pssh - 运维小结
  20. sql distinct详解以及优化

热门文章

  1. windows server2008 r2安装DNS服务器
  2. objectARX 添加线型下拉组合框空间 CAcUiLineTypeComboBox
  3. php中数组模拟队列、栈的函数以及数组指针操作
  4. nginx负载均衡监测节点状态
  5. php中的date和strtotime函数妙用
  6. php中模拟post,get请求和接受请求详细讲解
  7. P5108 仰望半月的夜空
  8. sap server笔记
  9. ubuntu 报错 libcublas.so.8.0
  10. 怎么使用Vue-cli3开发像iview、element那样的组件可下载直接使用