java2——第1章

抽象时遵循的原则

  1. 属性和方法的设置是为了解决业务问题。
  2. 关注主要属性和方法。
  3. 如没有必要,勿增加额外的类,属性与方法。

this

this有两种使用情况,一种就是直接使用“this.属性名”或者“this.方法名()”,另外一种是“this()”。

public Student(String name){

     this();//调用无参数构造方法

     this.name=name;

}

  public Student(String name,int age){

     this(name);//调用第一个有参数构造方法

     this.age=age;

}

  public Student(String name,int age,String school){

     this(name,age);//调用第二个有参数构造方法

     this.school=school;

}

类与对象

类(Class)和(Object)是面向对象中的两个核心概念。
类是对某一类事物的描述,是抽象的,概念上的定义。对象是实际存在的,具体的事物个体。类和对象就好比,模具和铸件的关系,建筑物图纸和建筑物图纸和建筑物实物的关系。我们可以由一个类创建多个对象。

方法重载的判断依据

  1. 必须在同一个类里。
  2. 方法名相同。
  3. 参数列表(方法参数的个数或参数类型)不同。
  4. 与方法返回值和方法修饰符没有任何关系。

static修饰符

static 可以用来修饰属性,方法和代码块。
static修饰的变量属于这个类所有,即由这个类创建的所有对像共用一个static变量。 通常把static修饰的属性和方法称为 **类属性(类变量 )和类方法。**不使用static修饰的属性和方法属于单个对象,通常称为 实列属性(实列变量)和实列方法 使用static修饰方法的常见的例子是我们熟悉的main()方法。下面通过一个实例学习static的用法及使用static修饰属性和代码块时,是如何分配内存空间的。

public class StaticTest{
    static int i;
    static int m=30;
    int j;
    int k=25;
    static {
    i=10;
    System.out.println("i的初始值为:"+i);
    }
    public StaticTest(){
    j=20;
    System.out.println("j的初始值为:"+i);
    }
    public static void getNum(){
    System.out.println("得到i的值为:"+i);
    }
    public static void main(String[] args){
    StaticTest st=new StaticTest();
    System.out.println("i的值为:"+StaticTest.i);
    st.getNum();
    System.out.println("m的值为:"+st.m);
    System.out.println("k的值为 :"+st.k);
    }
}

运行结果:

i的初始值为:10 第一句执行
j的初始值为:10
i的值为 :10
得到i的值为;10
m的值为:30
k 的值为:25

标题从结果中可以得出以下结论:

  1. 在加载类的过程中,完成静态变量的内存分配,再执行静态块,两者是在创建对象之前执行的。
  2. 类属性和类方法可以通过类名访问,实例属性和实例方法只能通过对象之前访问。
  3. 类方法只能访问类属性和其他类方法。
发布了2 篇原创文章 · 获赞 0 · 访问量 14

猜你喜欢

转载自blog.csdn.net/jcvvs/article/details/104941686