类与对象的初步认识
1.类表示一类事物的抽象概念,规定了该类中所有对象所具备的属性与行为。
2.对象是类中一个具体的、可以使用的事物。
总的来说就是先有类再有对象,类包含了多个具体的事物的属性以及行为。对象是根据类产生的,并且这个对象所拥有的所有属性与行为必须是类中完整定义的。
3.面向对象就是用代码(类)来描述客观世界的事物的一种方式。
类和类的实例化
1.类就是一类对象的统称。
2.对象就是这一类具体化的一个实例。
举个栗子:蛋糕店橱柜里摆的都是模型,而你通过这些模型就可以看到你想要的样子,然后得到的成品是可以吃的,那么呢个模型就是类,成品就是一个对象。
如何创建一个类呢?
1.基本语法
class <class_name>{
field;//成员属性
method;//成员方法
}
//实例化对象
<class_name> <对象名> =new <class_name>();
2.类的实例化:用类的模型创建对象的过程。
ps:实例化出的对象占用 实际 物理空间。
类名称 对象名称 =new 类名称();
eg:Person per =new Person();
*注意事项:
1.new 关键字用于创建一个对象的实例。
2.使用 .来访问对象中的属性与方法。
3.同一个类可以创建多个对象。
例如:
class Person {
String name;
int age ;
public void eat(){
System.out.println(“吃饭!”);
}
public void sleep(){
System.out.println(“睡觉!”);
}
}
public class test {
public static void main(String[] args){
Person person =new Person();
person.eat();
person.sleep();
}
}
输出结果为:
吃饭!
睡觉!
类的成员
1.字段/属性/成员变量(这三个是同一种东西)
在类中,但是在方法外部定义的变量。用于描述一个类中包含那些数据。
a.默认值规则
整型 0
浮点型 0.0
字符型 \u0000
布尔型 flases
所有引用类型(数组\类\接口)null
b.关于null 的一些知识(空引用)
凡是值为null的引用变量,均无法访问任何属性或方法。
如果对null进行 . 操作,就会发生异常。(Null Pointer Exception)
c.初始化
定义类时就将属性初始化。
若属性存在默认值,也存在定义类时初始化。
2.方法/成员方法/实例方法(实例方法行为与具体对象相关)
a.格式
[public] 返回值 方法名称(方法参数){
//方法体代码
[return]
}
3.static 关键字(重点)
(1)修饰属性
a.static 属性对所有对象都是共享的,只要有任意一个对象修改此属性值,其他对象立即可见。
b.static 属性与对象实例化无关,直接可以通过类名称访问(推荐使用类名称访问类属性)
ps:实例对象与实例方法通过对象访问,类属性则通过类访问;
c.在方法中无法定义静态变量,静态变量只能在类中定义,归类所有。
(2)修饰方法(此方法被称作静态方法/类方法)
a.在静态方法中无法访问类中的非静态域(属性及方法);
b.在静态方法中可以调用类中的静态域(属性及方法);
c.在普通方法中可以调用类中的静态域(属性及方法);
(3)代码块
(4)修饰类
构造方法(完成属性初始化操作)
在对象实例化时由系统自动调用,用于完成对象的初始化操作。
Person per =new Person();
1.在产生对象的过程中:
a.为对象在堆上分配空间;
b.系统调用该类的构造方法
2.构造方法的语法规则:
a.构造方法必须与类名称相同;
b.构造方法没有返回值声明;
注意事项:
1.如果类中没有任何构造函数的声明,则系统会自动生成一个无参构造函数;
2.若类中定义了构造方法(不管是有参函数还是无参函数),则默认的无参构造就不在生成;
3.构造方法支持重载(只是参数个数不一样);
4.构造方法可以访问静态属性;
This 关键字(表示当前对象的引用)
1.this 修饰属性,表示访问类中的成员变量
若要在普通方法或构造方法中访问类的实例变量,加上this关键字
否则,就会遵循就近取用原则;
2.this 修饰方法
调用普通方法;
调用构造方法;
a.this();调用无参构造;
b.this(参数);调用有参构造;
注意事项:
a.this 调用构造方法必须放在构造方法首行;
b.this构造方法调用不能成环;
3.this表示当前对象的引用