发表于: 2017-09-11 21:05:21

1 776


今天学习的内容:

属性:在类中定义,一般为 类型+属性名称,如:String name;

方法:给类增加描述,或者对属性增加操作,分为有无返回值,有无参数等种类。

public class Hero {

    String name; //姓名

      

    float hp; //血量

      

    float armor; //护甲

      

    int moveSpeed; //移动速度

 

    //坑队友,无返回值,无参数

    void keng(){

        System.out.println("坑队友!");

    }

 

    //获取护甲值,armor是返回值,类型是float

    float getArmor(){

        return armor;

    }

     

    //增加移动速度

    void addSpeed(int speed){

        //在原来的基础上增加移动速度,int speed是参数

        moveSpeed = moveSpeed + speed;

    }

     

    public static void main(String[] args) {

         Hero garen =  new Hero();

         garen.name = "盖伦";

         garen.moveSpeed = 350;

         garen.addSpeed(100);

          

    }

     

}

字面值:给基本类型的变量赋值的方式叫做字面值。

作用域:

(1)如果一个变量被声明在类下面,变量就叫做字段 或者属性、成员变量、Field。其作用域就是从其声明的位置开始的整个类。

(2)如果一个变量,是声明在一个方法上的,就叫做参数。参数的作用域即为该方法内的所有代码,其他方法不能访问该参数,类里面也不能访问该参数。

参数举例:

public class HelloWorld {

 

    public void method1(int i){ //参数i的作用域即方法method1

        System.out.println(i);

    }

    public void method2(){ 

 

        System.out.println(i); //method2 不能访问参数i

    }

     

    int j = i;  //类里面也不能访问参数i

}

(3)声明在方法内的变量,叫做局部变量。其作用域在声明开始的位置,到其所处于的块结束位置。注意与参数区分,参数是声明在方法上而不是方法内。

局部变量举例:

public class HelloWorld {

 

    public void method1() {

        int i  = 5;  //其作用范围是从声明的第4行,到其所处于的块结束12行位置

        System.out.println(i);

        {            //子块

            System.out.println(i); //可以访问i

            int j = 6;

            System.out.println(j); //可以访问j

        }

        System.out.println(j); //不能访问j,因为其作用域到第10行就结束了

    }

 

}

final:当一个变量被final修饰的时候,该变量只有一次赋值的机会。

增强型循环:

增强型for循环在遍历一个数组的时候会更加快捷。

public class HelloWorld {

    public static void main(String[] args) {

        int values [] = new int[]{18,62,68,82,65,9};

        //常规遍历

        for (int i = 0; i < values.length; i++) {

            int each = values[i];

            System.out.println(each);

        }

         

        //增强型for循环遍历

        for (int each : values) {

            System.out.println(each);

        }

         

    }

}

复制数组:

public class HelloWorld {

    public static void main(String[] args) {

        int a [] = new int[]{18,62,68,82,65,9};

         

        int b[] = new int[3];//分配了长度是3的空间,但是没有赋值

         

        //通过数组赋值把,a数组的前3位赋值到b数组

         

        //方法一: for循环

         

        for (int i = 0; i < b.length; i++) {

            b[i] = a[i];

        }

        

        //方法二: System.arraycopy(src, srcPos, dest, destPos, length)

        //src: 源数组

        //srcPos: 从源数组复制数据的启始位置

        //dest: 目标数组

        //destPos: 复制到目标数组的启始位置

        //length: 复制的长度        

        System.arraycopy(a, 0, b, 0, 3);

         

        //把内容打印出来

        for (int i = 0; i < b.length; i++) {

            System.out.print(b[i] + " ");

        }

 

    }

}

方法二应该是java中复制数组的方式,比方法一便捷一些。

还有arrays工具类,可进行排序,查找,复制填充等功能。

类和对象:

引用:

举例:

new Hero();

 代表创建了一个Hero对象

但是也仅仅是创建了一个对象,没有办法访问它,为了访问这个对象,会使用引用来代表这个对象。

 Hero h = new Hero();

 h这个变量是Hero类型,又叫做引用,=的意思指的h这个引用代表右侧创建的对象,“代表” 在面向对象里,又叫做“指向”。

存在多个引用指向同意对象,但一个引用只能指向一个对象,如果没有任何手段控制和访问一个对象,那么该对象就变得没有意义。

继承:

代表一个类可继承已经设计好的类中的某些属性,而不用从新设计定义。例如:

public class Item {

    String name;

    int price;

}

public class Weapon extends Item{

    int damage; //攻击力

     

    public static void main(String[] args) {

        Weapon infinityEdge = new Weapon();

        infinityEdge.damage = 65; //damage属性在类Weapon中新设计的

         

        infinityEdge.name = "无尽之刃";//name属性,是从Item中继承来的,就不需要重复设计了

        infinityEdge.price = 3600;

         

    }

     

}

重载:方法的重载指的是方法名一样,但是参数类型不一样。

构造方法:方法名和类名一样(包括大小写),没有返回类型。

实例化:通过一个类创建一个对象,它是通过构造方法(又称构造器)实现。

public class Hero {

       

    String name; //姓名

       

    float hp; //血量

       

    float armor; //护甲

       

    int moveSpeed; //移动速度

       

    //带一个参数的构造方法

    public Hero(String heroname){  

        name = heroname;

    }

     

    //带两个参数的构造方法

    public Hero(String heroname,float herohp){  

        name = heroname;

        hp = herohp;

    }

       

    public static void main(String[] args) {

        Hero garen =  new Hero("盖伦");  

        Hero teemo =  new Hero("提莫",383);

    }

     

}

ps:部分知识点在C中已经接触,如操作符,数据类型等,在此不做记录。

明日计划:今天先记录这么多,消化一下,明天继续学习。




返回列表 返回列表
评论

    分享到