• 我的Java之路(3)


    续前篇

    方法:

    1。构造方法:供类的创建对象使用,给出类创建对象的初始状态。

    实例方法和类方法。

    对象不可以调用构造方法,构造方法专门创建对像。

    除构造方法外,方法返回的数据类型可以是任意java类型。除构造方法外,方法都有类型,即使是void,也不允许省略不写。

    方法起名字:如果用拉丁字母,首写字母应使用小写,如果由多个单词组成,则从第二个单词开始的其他单词应大写。(局部变量的名字命名同样如此)

    方法体的构成:变量的定义和合法的java语句。方法体中声明的变量以及方法的参数称为局部变量,局部变量仅仅在该方法内有效。

    方法声明中用关键字static修饰的称为类方法货静态方法,不用static修饰的称为实例方法。一个类中的方法 可以互相调用,

    实例方法可以调用该类中的实例方法和静态方法(类方法)。类方法只能调用该类的类方法,不能调用实例方法。

    实例方法必须通过对象来调用:因为当类的字节码文件被加载到内存中时,类的实例方法不会被分配入口地址,只有但该类创建对象后,类中的实例方法才分配入口地址。

    当使用new和构造方法创建对象时,首先给配成员变量给该对象,同时实例方法分配入口地址,然后执行构造方法中的语句,完成必要的初始化。

    注意:在创建第一个对象时,类作中的实例方法就分配了入口地址,当再创建对象时,不再分配入口地址,方法的入口地址被所有对象共享。

    类方法通过类名直接调用。

    参数传值:

    (1)基本数据类型的参数传值(略)

    (2)引用类型的参数的传值

    java的引用类型包括对象,数组,以及后面将要学习的接口,当参数是引用类型时,“传值”传的事变量的引用而不是变量所引用的的实体。(具体见参考书p56)

    方法的重载(略,类似C++的重载)

    关键字this:this可以出现在实例方法和构造方法中的,但是不可以出现在类方法中。因为类方法可以通过类名直接调用,这是可能还没有任何对象诞生。

    区分成员变量和局部变量

    成员变量在整个类中有效,局部变量仅仅在方法内有有效。在方法体中声明的变量以及方法的参数称为局部变量,方法的参数在整个方法内有效,方法内的局部变量在从定义它的位置后开始有效。

    注意:如果实例方法中或类方法局部变量名字和成员变量的名字相同,则成员变量被隐藏,急这个成员变量在这个方法内暂时失效。如:

    class Tom{

        int x=188,y;

        void f(){

        int x=3;

        y=x;//此时Y的值是3,而不是188.如果方法f()中没有int x=3;语句,则y的值是188

      }

    }

    如果这时想在实例方法或类方法内使用成员变量,对于实例方法,成员变量前面的this,就不可以省略,对于类方法,必须显示的使用类名操作变量。详见p61

    包(包是java语言中有效管理类的一种机制)

    package 包名。

    如果使用了包语句如
    package  tom.jiafei;

    那么目录结构必须包含以下结构:...\tom\jiafei

    编译的名字与运行程序的名字不一样如编译时如一个包名为tom.jiafei,其中有源文件主类名example:

    则在编译时D:\ch4\tom\jiafei>javac example.java

    运行时用D:\ch4>java tom.jiafei.example

    包名应避免重复,可以用本公司域名倒置作为包名。

    使用-d可以指定生成的字节码文件的位置。

    如果源文件使用包语句声明了包名,使用参数-d是要格外小心。

    具体见p62

    4.11.import语句

     import语句引入包中的类。(java提供类略)

    系统自动引入java。lang包中的类

    Data来显示本机当前时间。如:

    import java.util.Data;

    public class example{

        public static void main(String args[]){

          Data data=new Data();

          System.out.printf("本机当前时间:\n%s",data);

        }

      }

    也可以编译一个源文件得到该源文件中类的字节码文件,然后供其他类使用。

    避免类名混淆(详见p66)

    4.12访问权限

    待续。。。。

  • 相关阅读:
    python全栈开发_day41_数据库5
    python全栈开发_day40_数据库4
    python全栈开发_day39_数据库3
    python全栈开发_day38_数据库2
    python全栈开发_day37_数据库1
    python全栈开发_day36_高并发,协程
    python全栈开发_day35_锁,进程池,线程池
    python全栈开发_day34_线程了解知识点
    python全栈开发_day33_关于进程的了解知识
    python全栈开发_day32_粘包分析,socketserver和多道技术
  • 原文地址:https://www.cnblogs.com/yanmingup/p/2874039.html
Copyright © 2020-2023  润新知