【Java概念】类组成结构、成员变量、成员方法(5)

类:

package cn.hncu.program.class_;


/**
 * 项目名:进入Java世界的第一个类 ---HelloWorld
 * 时间 :2017-9-10 下午5:23:28
 */
/*
 * 1.世间万物皆对象
 * 2.我们在Java 里的全部工作就是定义类、制作那些类的对象以及将消息发给那些对象。
 * 3.类中包含两部分:
 *      成员变量(字段)、成员方法(方法)
 * 4.成员变量:是一种对象(通过它的句柄与其通信)可以为任何类型,也可以是主类型。
 *          如果成员变量是指向对象的一个句柄,则必须初始化那个句柄,用一种名为
 *          “构建器”的特殊函数将其与一个实际对象连接起来(使用new关键字);
 *          如果成员变量是一种主类型,则可在类定义位置直接初始化(句柄可以在
 *          定义位置初始化)。
 * 5.成员方法:方法的基本组成部分包括名字、参数列表、返回类型以及主体。
 *          基本形式为:返回类型 方法名(自变量列表 ) { 方法主体 }。
 *          返回类型:是指调用方法之后返回的数值类型。返回值的类型必须兼容接收者的类型。
 *          方法名:是对具体的方法进行标识和引用。
 *          自变量列表:列出了想传递给方法的信息类型和名称。
 * 6.每个对象都为自己的成员变量保有存储空间。
 * 7.成员变量的默认值:
 *      Boolean false , Char '\u0000'(null) , byte (byte)0 
 *      short (short)0 , int 0 , long 0L , float 0.0f ,
 *      double 0.0d ,引用类型的默认值为null。
 *
 *Java中的名称[标识符]:
 *1.名称(names)用于引用Java程序中声明的实体。声明的实体是包、类型、类型的成员(域或者方法)、参数或者局部变量。
 *2.简单名称(simples)是一种单个的标识符。
 *3.限定名称(qualified)提供对包和引用类型中的成员的访问。限定名称由一个名称,一个“.”符号和一个标识符组成。
 *4.标识符也用于声明中,在声明中标识符决定一个实体赖以被识别的名称/。
 *5.标识符还用于域访问表达式和方法调用表达式,以及语句行号和使用语句行号的break,和continue中。
 *
 * 8.class类格式:
 * class{
 *   若干个变量---特征
 *   若干个函数---行为
 * }
 *
 * 9.一个源文件中,public的类最多只能有一个,可以没有public类。
 *   如果一个类是public的,那么它的名字必须和文件名相同,包括大小写。
 */
public class HelloWorld {

    /*定义成员变量*/
    String name = "Hello World !";
    int age = 20;
    BirthDay birthday = new BirthDay();

    /*定义成员方法*/
    public void showInfo(){
        System.out.println(name+","+age+","+birthday);
    }
    public static void main(String[] args) {
        /*
         * 创建一个对象,使用new关键字,如果要使用对象中的成员变量和成员方法用"."调用。
         */
        HelloWorld hw = new HelloWorld();
        hw.showInfo();
        /*
         * 【static】关于静态方法与非静态方法的说明:
         * 1.非静态的东西是对象的,因此要用:对象.方法名()
         * 2.静态的东西是属于类的,因此要用:类名.方法名()
         * 
         */
        BirthDay birthday = new BirthDay();
        birthday.toString();//非静态
        BirthDay.showString();//静态
    }
}



class BirthDay{
    int year = 1970;
    int month = 1;
    int day = 1;

    /*
     * static关键字:
     * 静态的东西是属于类的,非静态的东西是属于对象的。
     */
    public static void showString(){
        System.out.println("1970-1-1");
    }
    /*
     * 【覆盖方法】:
     * 覆盖方法的访问权限不能低于父类,Object中的toString方法为public,覆盖方法权限也要public
     */
    public String toString() {
        return "BirthDay [year=" + year + ", month=" + month + ", day=" + day
                + "]";
    }
}

变量初始化、方法调用、引用传递、参数传递:

/*
 * 【变量初始化问题】:
 * 1.类的实例变量,系统会自动为其赋初值。
 * 2.局部变量必须手动初始化后才能使用。
 * 3.内部块中的信息,外部块是无法了解的。
 * 
 * 【变量作用范围级别】:
 * 1.类级
 * 2.对象实例级
 * 3.块级
 * 4.方法级
 */
class Test {
      private static String name="Java学习";   // 1:类级
      private int i;  // 2:对象实例级,Test类的实例变量
      {   int j=2;   // 4:块级,属性块,在类初始化属性时候运行
      }
      public void test1(){
          int j=3;// 3:方法级
          if(j==3){
                int k=5; // 4:块级
          }
        //这里不能访问块级的变量,块级变量只能在块内部访问
          System.out.println("name="+name+",i="+i+",j="+j);
      }
      public static void main(String [] args){
         Test t=new Test();    t.test1();
      }
}

/*
 【同一个类,在一个方法中调用另一个方法】:
在同一个类中:
对于静态方法,其他的静态或非静态方法都可以直接调用它。
而对于非静态方法,其他的非静态方法是可以直接调用它的。但是其他静态方法只有通过对象才能调用它。

【不同类间,在一个方法中调用另一个方法】:
不同的类之间,无论调用方法是非静态还是静态,如果被调用的方法是:
静态方法,则通过类名与对象都可以调(但通过对象的方式不建议使用,因为它属于非静态调用的方式)
非静态方法,则只能通过对象才可以调用它

【方法调用中的参数传递】:
在Java中,只有基本数据类型和String型的参数是按值传递的,其他都是按引用传递的。
【引用参数传递】:
传递的是当前对象的引用。
 */

你可能感兴趣的:(❶JavaSE,----,----Java基础知识,JavaSE基础知识)