zoukankan      html  css  js  c++  java
  • 暑假自学(10)

    今天继续了数组的学习,对数组的内存方面和算法方面进行了一个复习吧。

    数组在内存方面确实很重要,很经典的例子:

    int [] a = new int[]{1,2,3};

    int [] b = new int[3];

    b = a;

    b[0] = 0;

    system.out.println(a[0]+"  "+b[0]);

    结果是0  0;

    原因是a和b都代表了地址,a数组的地址给了b,在栈中有a和b两个变量,但在堆中只有一个数组,a与b只是指向同一个数组而已,所以改变b数组就是改变了堆中唯一一个数组,a也指向那个数组,所以a也会改变

    之后开始面向对象

    面向对象:
    三条主线:
    1.Java类及类的成员:属性、方法、构造器;代码块、内部类
    2.面向对象的三大特征:封装性、继承性、多态性、(抽象性)
    3.其他关键字:this、super、static、final、abstract、interface、package、import
    样例:
    class Person{
    String name;
    public void eat(){
    system.out.println("");
    }
    }
    Java中数据成员的访问权限,每一个数据成员前写明,没有写明就是缺省

    //*************
    随机数 (数据类型,默认为double)(Math.random()*((max-min+1)+min))
    括号不能省略

    面向对象中数据成员的定义的权限都要单独在前面写清

    此处声明:Java的对象数组必须实例化,即在定义之后还需要new 变量名();

    用类创建数组是创建了指针,指针并没有指向任何东西;还需要实例化,与类套上关系。

    /************************************/

    试验代码

    public class Array_class {
    public static void main(String[] args) {
    Student [] std = new Student[20];
    for(int i=0;i<20;i++)
    {
    std[i] = new Student();
    std[i].num = (int)(Math.random() * ((20-1+1)+1));
    std[i].state = (int)(Math.random() * ((6-1+1)+1));
    std[i].score = (int)(Math.random()*((100-0+1)+1));
    std[i].output3();
    }
    }
    }
    class Student{
    int num;
    int state;
    int score;
    public void output()
    {
    System.out.println("number:"+num);
    System.out.println("state:"+state);
    System.out.println("score:"+score);
    System.out.println();
    }
    public void output3()
    {
    if(state==3)
    output();
    }
    }

  • 相关阅读:
    课后作业
    课后作业
    课后作业3
    课后作业
    课后作业
    课后作业
    java 加减法2
    java 出计算题
    Java web 登录界面
    构建之法读后感
  • 原文地址:https://www.cnblogs.com/buxiang-Christina/p/13307821.html
Copyright © 2011-2022 走看看