Skip to content

Latest commit

 

History

History
280 lines (201 loc) · 9.11 KB

File metadata and controls

280 lines (201 loc) · 9.11 KB

第4节 java和jshell基础

❤️💕💕java的学习指南,从入门到大师篇章。Myblog:http://nsddd.top


[TOC]

安装

使用迅雷快速安装

image-20220830202436973

链接:https://pan.xunlei.com/s/VNAihCUYSnMhn3o7A07lSt0oA1?pwd=n7bb# 提取码:n7bb

  • 配置环境变量
C:\Users\smile>java -version
java version "1.8.0_331"
Java(TM) SE Runtime Environment (build 1.8.0_331-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.331-b09, mixed mode)

jshell

jshell类似于python中的ipython或者是Node中的node,是一个交互式命令行工具

jshell中的快捷键

快速方式 说明
在输入 Java 标识符、jshell 工具命令或 jshell 工具命令参数(在某些情况下)的前几个字母后,按 键可以完成输入。如果有多个输入提示,则将显示可能的输入提示。将显示可用的适用文档。
Shift- v 在完整的表达式后面,按住 的同时按下 ,然后释放并按 “ v ”,此时表达式将转换为其类型基于表达式类型的变量声明。
Shift- m 完成表达式或语句之后,按住 的同时按住 ,然后释放并按住 “ m ”,则表达式或语句将转换为方法声明。如果是表达式,则返回类型基于表达式的类型。
Shift- i 在不可解析的标识符后面,按住 的同时按下 ,然后释放并按 "i",此时 jshell 工具将会建议可能的导入项,这将基于指定类路径的内容解析标识符。

jshell的常用命令

JShell 常用命令:

command 说明
/list [<名称或 id>|-all|-start] 列出所有您键入的源
/edit <名称或 id> 编辑键入的源
/drop <名称或 id> 删除键入的源
/save [-all|-history|-start] < 文件 > 将片段源保存到指定文件
/open 打开文件作为源输入
/vars [<名称或 id>|-all|-start] 列出已声明变量及其值
/methods [<名称或 id>|-all|-start] 列出已声明方法及其签名
/types [<名称或 id>|-all|-start] 列出类型声明
/imports 列出导入的项
/exit [] 退出 jshell 工具
/env [-class-path < 路径>][-module-path < 路径>][-add-modules < 模块>] 查看或更改评估上下文
/reset [-class-path < 路径>][-module-path < 路径>][-add-modules < 模块>] 重置 jshell 工具
/reload [-restore][-quiet][-class-path < 路径>][-module-path < 路径>] 重置和重放相关历史记录 -- 当前历史记录或上一个历史记录 (-restore)
/history [-all] 键入的内容的历史记录
/help [|] 获取有关使用 jshell 工具的信息
/set editor|start|feedback|mode|prompt|truncation|format 设置配置信息
/? [|] 获取有关使用 jshell 工具的信息
/! 重新运行上一个片段 -- 请参阅 /help rerun
/ 按 ID 或 ID 范围重新运行片段 -- 参见 /help rerun
/- 重新运行以前的第 n 个片段 -- 请参阅 /help rerun

jshell上手

jshell> System.out.pr
print(     printf(    println(
jshell> System.out.println("hello word!")
hello word!

加减

jshell> 10
$2 ==> 10

jshell> 29
$3 ==> 29

jshell> $2 + $3
$4 ==> 39

其他用法

jshell> 3 * 7
$1 ==> 21
|  已创建暂存变量 $1 : int
 
jshell> /!
3 * 7
$2 ==> 21
|  已创建暂存变量 $2 : int
 
jshell> int a;
a ==> 0
|  已创建 变量 a : int
 
jshell> /-1
int a;
a ==> 0
|  已修改 变量 a : int
|    更新已覆盖 变量 a : int
 
jshell> /-4
3 * 7
$5 ==> 21
|  已创建暂存变量 $5 : int

设置变量

jshell> var a = 120
a ==> 120

jshell> var b = 123142
b ==> 123142

jshell> a + b
$6 ==> 123262

Java Number & Math 类

Java 语言为每一个内置数据类型提供了对应的包装类。

所有的包装类**(Integer、Long、Byte、Double、Float、Short)**都是抽象类 Number 的子类。

包装类 基本数据类型
Boolean boolean
Byte byte
Short short
Integer int
Long long
Character char
Float float
Double double

ava 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。

Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。

public class E{
    public static void main(String[] args) {
        System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));
        System.out.println("0度的余弦值:" + Math.cos(0));
        System.out.println("60度的正切值:" + Math.tan(Math.PI/3));
        System.out.println("1的反正切值: " + Math.atan(1));
        System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2));
        System.out.println("PI = "+Math.PI);
    }
}

编译:

90 度的正弦值:1.0
0度的余弦值:1.0
60度的正切值:1.7320508075688767
1的反正切值: 0.7853981633974483
π/2的角度值:90.0
3.141592653589793

this

1.普通的直接引用

这种就不用讲了,this 相当于是指向当前对象本身。

2.形参与成员名字重名,用 this 来区分:

class Person {
    private int age = 10;
    public Person(){
    System.out.println("初始化年龄:"+age);
}
    public int GetAge(int age){
        this.age = age;
        return this.age;
    }
    /*    public int GetAge(int ages){
        age = ages;
        return age;
    }
    */
}
 
public class test1 {
    public static void main(String[] args) {
        Person Harry = new Person();
        System.out.println("Harry's age is "+Harry.GetAge(12));
    }
}

3.引用构造函数,和super一起

super

super 可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。

super 也有三种用法:

1.普通的直接引用

与 this 类似,super 相当于是指向当前对象的父类,这样就可以用 super.xxx 来引用父类的成员。

2.子类中的成员变量或方法与父类中的成员变量或方法同名

class Country {
    String name;
    void value() {
       name = "China";
    }
}
  
class City extends Country {  //子类继承父类
    String name;
    void value() {
    name = "Shanghai";
    super.value();      //调用父类的方法
    System.out.println(name);  //Shanghai
    System.out.println(super.name);  //父类的名字  -- China
    }
  
    public static void main(String[] args) {
       City c=new City();
       c.value();
       }
}

END 链接