【java知识点之面向对象四】

1.创建一个对象的步骤

  • Student s=new Student()
  • Student.class加载进内存
  • 声明一个Student类型引用
  • 在堆内存创建对象
  • 给对象中属性默认初始化值
  • 属性进行显示初始化
  • 构造方法进栈 对对象中的属性赋值 构造方法弹栈
  • 将对象的地址值赋值给s
public class void main(String[] args){
Student s1=new Student();
s.show();
}
  }



class Student{
private String name="张三";
private int age=23;



public Student(){
name="李四";
age=24;
}


public void show(){
System.out.println(name+""+age);
}
  }

2.Static关键字的特点

a.随着类的加载而加载

b.优先于对象存在

c.被类的所有对象共享

      举例:同一个班级学生学生应该共用一个班级编号,所以若果某个成员变量是被所有对象共享的,那么就应该定义为静态的。

       举例:饮水机(用静态修饰)

                   水杯(不用静态修饰)

                  共性用静态 特性用非静态

d.可以通过类名调用

  • 其本身也可以通过对象名调用
  • 推荐使用类名调用
  • 静态修饰的内容一般称为:与类相关的,类成员

  

class Demo_Static{
public void main(String [] args){

Person p1=new Person();
p1.name="李明";
p1.countey="中国”;
p1.speak();


Person p2=new Person();
p2.name="李空";
//p2.countey="美国”;
p1.speak();
p2.speak();




class Person{
String name;
static String country;


public void speak(){
  System.out.println(name+"  "+country);
}
}

3.Static的注意事项

a.在静态方法中没有this关键字

  •        静态是随着类的加载而加载 this是随着对象的chua创建而存在
  •        静态比对象先存在

b.静态方法只能访问静态的成员变量和成员方法

        静态方法:

  •    成员变量:只能访问静态变量
  •    成员方法:只能访问静态成员方法

        非静态方法:

  •    成员变量:可以是静态也可以是非静态
  •    成员方法:可以是静态也可以是非静态

         简单记为:静态只能访问静态

静态变量和成员变量的区别:

A.所属不同

  • 静态变量属于类  所以也叫类变量
  • 成员变量属于对象 所有也叫对象(实例)变量

B.内存中位置不同

  • 静态变量存储于方法区的静态区
  • 成员变量存储于堆内存

C.内存出现时间不同

  • 静态变量随着类的加载而加载 随着类的消失而消失
  • 成员变量随着对象的创建而存在 随着对象的消失而消失

D.调用不同

  • 静态变量可以通过类名调用 也可以通过对象调用
  • 成员变量只能通过对象名调用

4.main方法的格式详细解释

A.格式

  • public static void main(String[ ]args){  }

B.针对格式的解释

  • public被jvm调用,访问权限足够大。
  • static被jvm调用,不用创建对象,直接类名访问
  • void被jvm调用,不需要给jvm返回值
  • main是一个通用的名称,虽然不是关键字,但是被jvm识别
  • String [ ]args以前用于接收键盘录入

猜你喜欢

转载自blog.csdn.net/qq_40777545/article/details/81252720
今日推荐