java变量类型,变量命名,数组和基元类型,数组操作,java类

  1. Java 编程语言定义了以下类型的变量:

实例变量 (非静态字段)从技术上讲,对象将其各个状态存储在 “非静态字段” 中,即声明时没有 static 关键字的字段。非静态字段也称为实例变量,因为它们的值对于类的每个实例(换句话说,对于每个对象)都是唯一的;一辆自行车的 currentSpeed 与另一辆自行车的 currentSpeed 无关。

类变量 (静态字段)类变量是使用 static 修饰符声明的任何字段;这告诉编译器,无论该类已实例化多少次,都恰好存在此变量的一个副本。定义特定类型自行车的齿轮数的字段可以标记为 static,因为从概念上讲,相同的齿轮数将应用于所有实例。代码 static int numGears = 6; 将创建这样一个静态字段。此外,可以添加关键字 final 以指示齿轮的数量永远不会改变。

局部变量与对象在字段中存储其状态的方式类似,方法通常会将其临时状态存储在局部变量中。声明局部变量的语法类似于声明字段(例如,int count = 0;)。没有将变量指定为 local 的特殊关键字;该确定完全来自声明变量的位置 — 即方法的左大括号和右大括号之间。因此,局部变量仅对声明它们的方法可见;类的其余部分无法访问它们。

参数您已经在 Bicycle 类和 “Hello World!” 应用程序的 main 方法中看到了参数示例。回想一下,main 方法的签名是 public static void main(String[] args) .此处,args 变量是此方法的参数。要记住的重要一点是,参数总是被归类为 “变量” 而不是 “字段”。这也适用于其他参数接受构造(例如构造函数和异常处理程序),您将在本教程的后面部分了解这些构造。

  1. 变量命名:
    如果您选择的名称仅包含一个单词,请用所有小写字母拼写该单词。如果它由多个单词组成,则将每个后续单词的首字母大写。名称 gearRatio 和 currentGear 是此约定的主要示例。如果变量存储常量值(如 static final int NUM_GEARS = 6 ),则约定会略有变化,将每个字母大写,并用下划线字符分隔后续单词。按照惯例,下划线字符永远不会在其他地方使用。

  2. java有八种基元类型:byte,short,int,long,float,double,boolean,char
    在初始化 primitive 类型的变量时,不使用 new 关键字。基元类型是语言中内置的特殊数据类型;它们不是从类创建的对象。

    数组声明有两个组成部分:
    ①数组的类型和数组的名称。数组的类型写为 type[],其中 type 是包含元素的数据类型;括号是特殊符号,表示此变量包含数组。数组的大小不是其类型的一部分(这就是括号为空的原因)。

int[] anArray;
byte[] anArrayOfBytes;
short[] anArrayOfShorts;

②创建数组的一种方法是使用 new 运算符。ArrayDemo 程序中的下一条语句为一个具有足够内存的数组分配 10 个整数元素,并将该数组分配给 anArray 变量。

// create an array of integers
anArray = new int[10];

或者,您可以使用快捷语法来创建和初始化数组:
在 Java 编程语言中,多维数组是其组件本身就是数组的数组。

int[] anArray = { 
    100, 200, 300,
    400, 500, 600, 
    700, 800, 900, 1000
};
String[][] names = {
            {"Mr. ", "Mrs. ", "Ms. "},
            {"Smith", "Jones"}
        };

复制:
①System 类具有一个 arraycopy 方法,可用于有效地将数据从一个数组复制到另一个数组:
使用文档

public static void arraycopy(Object src, int srcPos,
                             Object dest, int destPos, int length)

②Java SE 在 java.util.Arrays 类中提供了多种执行数组操作(常见任务,例如复制、排序和搜索数组)的方法。

String[] copyFrom = {
            "Affogato", "Americano", "Cappuccino", "Corretto", "Cortado",   
            "Doppio", "Espresso", "Frappucino", "Freddo", "Lungo", "Macchiato",      
            "Marocchino", "Ristretto" };
        
        String[] copyTo = java.util.Arrays.copyOfRange(copyFrom, 2, 9);        
        for (String coffee : copyTo) {
            System.out.print(coffee + " ");           
        }   

java.util.Arrays 类中的方法提供的其他一些有用的操作是:

在数组中搜索特定值以获取放置它的索引(binarySearch 方法)。

比较两个数组以确定它们是否相等(equals 方法)。

填充数组以在每个索引处放置特定值(fill 方法)。

按升序对数组进行排序。这可以使用 sort 方法按顺序完成,也可以使用 Java SE 8 中引入的 parallelSort 方法同时完成。在多处理器系统上对大型数组进行并行排序比顺序数组排序更快。

创建使用数组作为其源的流(stream 方法)。例如,以下语句以与上一个示例相同的方式打印 copyTo 数组的内容:

java.util.Arrays.stream(copyTo).map(coffee -> coffee + " ").forEach(System.out::print);  

将数组转换为字符串。toString 方法将数组的每个元素转换为字符串,用逗号分隔,然后用括号括起来。例如,以下语句将 copyTo 数组转换为字符串并打印它:

System.out.println(java.util.Arrays.toString(copyTo)); 
This statement prints the following:

此语句打印以下内容:

[Cappuccino, Corretto, Cortado, Doppio, Espresso, Frappucino, Freddo]

类的学习

有几种类型的变量:
Member variables in a class—these are called fields.
类中的成员变量 - 这些变量称为字段。
Variables in a method or block of code—these are called local variables.
方法或代码块中的变量 - 这些变量称为局部变量。
Variables in method declarations—these are called parameters.
方法声明中的变量 - 这些变量称为参数。

字段声明由三个部分组成,按顺序排列:

Zero or more modifiers, such as public or private.
零个或多个修饰符,例如 public 或 private。
The field’s type. 字段的类型。
The field’s name. 字段的名称。

访问修饰符:
public modifier—the field is accessible from all classes.
public 修饰符 - 该字段可从所有类访问。
private modifier—the field is accessible only within its own class.
private 修饰符 - 该字段只能在其自己的类中访问。

本着封装的精神,通常将字段设为私有。这意味着它们只能从 Bicycle 类直接访问。但是,我们仍然需要访问这些值。这可以通过添加为我们获取字段值的公共方法来间接完成:

public class Bicycle {
        
    private int cadence;
    private int gear;
    private int speed;
        
    public Bicycle(int startCadence, int startSpeed, int startGear) {
        gear = startGear;
        cadence = startCadence;
        speed = startSpeed;
    }
        
    public int getCadence() {
        return cadence;
    }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值