hooyantsing's Blog

第15次课程

字数统计: 694阅读时长: 3 min
2019/05/16

源辰74班

第15次课程

05.16.2019

**内容    **

OOP_2

1.方法重载

static(静态)相关:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Test1 {
    public static void main(String[] args) {
       int    x1 = -1;
       double x2 = -1.3;
       Test1 t = new Test1();
       t.abs(x1);
       t.abs(x2);
       
    }
    //static 
    //有:main方法可以直接调用。
    //无:需要先对类(Test1)实例化(new)后,再通过对象变量名(t)调用。
    public _____ void abs(int x) {
       int result = x>0?x:-x;
       System.out.println(x+"\t的绝对值:"+result);
    }
    public void abs(double x) {
       double result = x>0?x:-x;
       System.out.println(x+"\t的绝对值:"+result);
    }
}

重载:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Test2 {
    public static void main(String[] args) {
       int x = 1;
       int y = 2;
       double z = 3.4;
       
       add(x,y,1);
       add(x,y);
       add(x,z);
    }
    //方法重载:形参类型、顺序、个数不同,方法名相同
    public static void add(int x,int y,int  z) {
       System.out.println("1");
       System.out.println(x+y);
    }
    public static void add(int x,int y) {
       System.out.println("2");
       System.out.println(x+y);
    }
    public static void add(int x,double y) {
       System.out.println("3");
       System.out.println(x+y);
    }
}

3.static静态

Class Person2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Person2 {
    public Person2() {//优先级三级,new后运行
       System.out.println("构造方法");
    }
    
    {//优先级二级,每次new前运行,在构造方法前运行。
     //应用场景:对程序各部分检测
       System.out.println("实例块");
    }
    
    static {//优先级一级,jvm加载这个类,就会运行,且仅运行一次。
            //应用场景:系统环境检测
       System.out.println("静态块");
    }
    
    public void show() {
       System.out.println("对象方法/实例方法");
    }
    
    public static void show2() {
       System.out.println("静态方法");
    }
}

Main

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Test5 {
    public static void main(String[] args) {
       
       new Person2();
       new Person2();
       //结果:静态块仅运行一次,实例块和构造方法运行两次。
       
       //非静态调用
       Person2 p = new Person2();
       p.show();
       //静态调用
       Person2.show2();
       //静态成员/方法属于类(Person2)。非静态成员/方法属于对象(p)。
       
    }
}

4.Package(包)

1
2
3
创建包:
package com.yc.bean;
关键字  包名(若多级目录用"."隔开)
1
2
3
调入包:
import java.until.Scanner;
关键字

控制台创建包:

(1)应用记事本(.java)写好代码。

**88a7aec4331d2bdd0f0a9cca794cd6cb.png

**

(2)通过控制台 javac -d . Person.java编译。

**02575a218f00bfdace5c3c13e2cae3c5.png

**

关键字释义:__javac:java命令,-d:创建文件夹,.:当前目录,Person.java:源文件。

(3)生成包com\yc\bean,并且Person字节码在其中。

**2c158b552ec35d0f21100e0d04187548.png

**

若调用:

**e9ea2373f3298f17ddbc707d2bce2c30.png

**

控制台调用包:

(1)应用记事本(.java)写好代码。

其中:调用了包com.yc.bean中的Person字节码文件

**15c29000ff0f2c16f8fc67114cf7030b.png

**

(2)通过控制台 javac Test.java编译。

%!(EXTRA markdown.ResourceType=, string=, string=)

**同时将多个源码文件(.java)编译,若存在包(package),则生成包:

**

目录中仅存源码文件。

**f9e32388e6b5f981a74941eeeef2416a.png

**

通过javac -d . *.java    则统一生成所有文件。

**4b94361ce09a27fec7befb817ae77b62.png

**

**

**

CATALOG