类和对象
JAVA是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。面向对象注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将一个个功能实现连接起来。(处理大问题)
Java中类相当于现实世界中实体的抽象化后的抽象类别,而对象则是类中实例化出来的实体
- 就是一类对象的统称。对象就是这类具体化的一个实例。
一个类可以产生多个对象 一个.java文件最多一个类 - 创建类:
class 类名{
类体(类的成员)
}
- 类的成员可以包含:字段、方法、代码块、以及内部类及接口等。
public String name;//属性 成员变量 实例成员变量(不建议设置成员变量时初始化)
public int age;
public static int count=10; //static 静态成员变量 存放于方法区
public static final int SIZE=10;//方法区;
public final int SIZS2=30;//实例成员变量
public void eat(){
System.out.println("吃饭");
}//实例成员方法
{
this.name = "bit";
this.age = 12;
this.sex = "man";
System.out.println("I am instance init()!");
}//实例代码块
- 成员变量:
如果没有赋值,那么它的默认值就是自己所对应的0值。
引用类型( 数组 类 )、String——>null
简单类型——>0 (常见)
char——>‘\u0000’
boolean——> false
public String name;//未初始化name默认值为null
public static void main(String[] args) {
Person person=new Person();
System.out.println(person.name.length());//java.lang.NullPointerException空指针异常
}
- 关于static关键字: 被static修饰过的成员变量、成员方法以及代码块都为静态的。
所有被static所修饰的不管是成员,方法:
1调用与访问都只需要通过类名.就可以做到。
2都不依赖于对象。
如果count不被static所修饰,则为特征,依赖于对象,两个对象则有两个count
public int count;
public static void main(String[] args) {
Person person1=new Person();
person1.count++;
System.out.println(person1.count);//1
Person person2=new Person();
person2.count++;
System.out.println(person2.count);//1
}//不同对象有不同个count,count累加取决于对象
被static所修饰过得count不依赖于对象,属于类且只有一份,存放于方法区
public static int count;
public static void main(String[] args) {
// Person person1=new Person();
Person.count++;
System.out.println(Person.count);//1
// Person person2=new Person();
Person.count++;
System.out.println(Person.count);//2
}//只有一个count,依次累加
- 静态最先被加载。在静态内部只能访问静态数据成员,并可以更改静态数据成员,不能访问非静态的数据成员(静态的方法不依赖于对象,对象是否产生,并不影响静态方法的调用。而非静态的数据成员依赖于对象,只有对象被实例化后,name产生)
public String name;//属性 成员变量 实例成员变量(不建议设置成员变量时初始化)
public static int count;
public void fun1(){
count=99;//可以修改静态数据成员
System.out.println("count:"+count);
System.out.println("name"+name);//name必须要实例化出对象才能使用
- 静态代码块不管生成多少个对象,其只会执行一次,且是最先执行的。
静态代码块执行完毕后, 实例代码块(构造块)执行,再然后是构造函数执行。