1-Java 类方法详解

本章概要:
1、static 关键字
2、定义无参数的方法
3、定义带参数的方法
4、定义带返回值的方法

1、static 关键字

</br>课程概要:
  类方法
  静态变量

一、类方法

1、由static 修饰的方法称为类方法或静态方法。

2、过程:.java文件--> javac.exe编译 --> .class 文件 --> java.exe解释器 -->内存的方法区,静态方法被创建

二、静态变量

1、由static修饰的变量称为静态变量,也称类变量。

2、静态变量定义的位置是在方法之外。

3、静态变量与静态方法都是类从磁盘加载至内存后被创建的,与类同时存在,同时消亡。

4、静态变量又称类的成员变量,在类中是全局变量,可以被类中的所有方法调用。

5、静态变量耳朵值由JVM自动初识话,以下是各类型变量初始化值列表:

变量类型 初始值
整型 0
浮点型 0.0
字符型 unicode码为0的字符,该字符不可见
布尔型 false
字符串型 null

【示例】
键盘输入一个人的姓名、性别、年龄、身高、性格、然后让该人向大家做自我介绍。
代码:

import java.util.Scanner;

public class Introduce{

    static String name;
    static char sex;
    static short age;
    static float height;
    static String type;
    

    public static void main(String[] arg){
        Scanner scanner = new Scanner(System.in) ;
        System.out.println("Name: ");
        name=scanner.next();                   //1
        System.out.println("Sex: ");
        sex=scanner.next().charAt(0);      //2
        System.out.println("Age: ");
        age=scanner.nextShort();
        System.out.println("Height: ");      //3
        height=scanner.nextFloat();
        System.out.println("Type: ");
        type=scanner.next();
        System.out.print("Hello,my name is "+name+".");
        System.out.print("I'm "+ age+" this year.");
        System.out.println("And I'm"+height+" cm.");
        System.out.println("I'm a "+type+sex+" boy.");

    }
}

*****//1 scanner.next()
输入如果是ABCdef ,则读取所有字符串。如果输入是ab c def, 则只会读取ab。

*****//2 scanner.next().charAt(0)
读取输入字符串的第一个字符

*****//3 System.out.print()和System.out.println()
使用System.out.print()表示下面输出内容接着这行继续输出;
使用System.out.println()表示下面输出内容换行进行输出;


2、定义无参数的方法

</br>课程概要:
  什么是方法
  定义无参数方法
  为什么使用方法

一、什么是方法

方法代表一段代码,Java 的代码通常都封装在方法中。
例如main方法。main方法是Java规定的每个类的代码运行入口

二、定义无参方法 (注:方法名要小写)

static void 方法名(){
      方法体-方法中的代码
}

【示例】

static void input(){
      方法中的Java代码
}

三、为什么使用方法

1、Java的代码通常要在方法中编写,即代码封装在方法中。

2、模块化编程:将具有某种功能的代码块封装在一个方法中,不同的代码有不同的方法封装,利于程序的管理、维护。

3、将具有复用价值的代码封装在方法中,调用该代码时,只需调用方法名,这样能有效地减少程序的冗余。

【示例】
将上一节的【示例】中的输入数据的代码块封装在方法input()中,然后再main()中调用input方法,分别为两个人输入姓名、性别、年龄、身高、性格的信息。

import java.util.Scanner;

public class Introduce_Two{

    static String name;
    static char sex;
    static short age;
    static float height;
    static String type;
    
    static void input(){
        Scanner scanner = new Scanner(System.in) ;
        System.out.println("Name: ");
        name=scanner.next();
        System.out.println("Sex: ");
        sex=scanner.next().charAt(0);
        System.out.println("Age: ");
        age=scanner.nextShort();
        System.out.println("Height: ");
        height=scanner.nextFloat();
        System.out.println("Type: ");
        type=scanner.next();
    }

    public static void main(String[] arg){
        input();
        System.out.print("Hello,my name is "+name+".");
        System.out.print("I'm "+ age+" this year.");
        System.out.println("And I'm"+height+" cm.");
        System.out.println("I'm a "+type+sex+" boy.");

        input();
        System.out.print("Hello,my name is "+name+".");
        System.out.print("I'm "+ age+" this year.");
        System.out.println("And I'm"+height+" cm.");
        System.out.println("I'm a "+type+sex+" boy.");

    }
}

3、定义带参数方法

</br>课程概要:
  定义格式
  为什么使用带参方法

一、定义带参方法

static void 方法名(类型1 变量1,类型2 变量2,...){
      方法体-方法中的代码
}

【示例】

static void feeling(String cause, String content){
         方法中的代码
}

二、为什么使用带参数方法

带参方法可以接收外界的数据,使得方法能处理更加复杂的问题,具有更灵活的功能。
【示例】
定义带参方法feeling,表达人的感情,在main方法中调用feeling()

import java.util.Scanner;

public class Introduce_Two{

    static String name;
    static char sex;
    static short age;
    static float height;
    static String type;
    
    static void input(){
        Scanner scanner = new Scanner(System.in) ;
        System.out.println("Name: ");
        name=scanner.next();
        System.out.println("Sex: ");
        sex=scanner.next().charAt(0);
        System.out.println("Age: ");
        age=scanner.nextShort();
        System.out.println("Height: ");
        height=scanner.nextFloat();
        System.out.println("Type: ");
        type=scanner.next();
    }

    static void feeling(String cause, String content){
        System.out. println(cause);
        System.out. println(content);
    }

    public static void main(String[] arg){
        input();
        System.out.print("Hello,my name is "+name+".");
        System.out.print("I'm "+ age+" this year.");
        System.out.println("And I'm"+height+" cm.");
        System.out.println("I'm a "+type+sex+" boy.");
        feeling("I get $500", "haha...")

        input();
        System.out.print("Hello,my name is "+name+".");
        System.out.print("I'm "+ age+" this year.");
        System.out.println("And I'm"+height+" cm.");
        System.out.println("I'm a "+type+sex+" boy.");
        feeling("I lost my girl", "unhapyy...");    

    }
}

4、带返回值的类方法

</br>课程概要:
  为什么使用带返回值方法
  定义格式

一、为什么使用带返回值方法

1、在Java的Math类中定义了许多具有计算功能的方法,这些方法也称为函数。
例如:double Math.sqrt( double value)

2、Java允许程序员自定义这种具有计算并能返回结果的方法。

二、定义格式

static 返回值类型 方法名(参数列表){
    方法中的代码
    return 返回的数据;
}

示例: 定义一个计算并返回两个数和的方法add,代码如下:

static double add(double d1, double d2){
        return d1+d2;
} 

【示例】
定义一个能保留小数点后面任意位的方法pround, 在main方法中调用该方法,保留指定小数点后任意位。

import java.util.Scanner;

public class Test_03{

    static double pround(double value, int index){
        //compute 10^n 
        double pow10=Math.pow(10, index);
        //compute value * (10^n)
        double result=value*pow10;
        //rounding the result
        result=Math.round(result);
        result/=pow10;
        return result;
    }

    public static void main(String[] args){
        System.out.println("the result of two decimal places of 3.758 is "+pround(3.758, 2));
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,923评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,154评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,775评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,960评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,976评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,972评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,893评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,709评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,159评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,400评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,552评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,265评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,876评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,528评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,701评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,552评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,451评论 2 352

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,050评论 25 707
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,621评论 18 399
  • 嘴巴长的绝对是身体最重要部位。吃饭,说话,微笑。我这个嘴巴不好,吃饭不香,说话不对,微笑难看。咋办呢?今天有句话差...
    文莉的小屋阅读 291评论 0 0
  • 老妈: 昨天做梦,又梦到您啦! 这次看不清您的音容笑貌,但可以清晰感受到您的存在,梦里我还是在对...
    杨静相伴要你好看阅读 276评论 0 1
  • 情深底理阅读 28评论 0 1