JAVA 的是完全面向对象编程的!!!
面向对象编程的三大特性:封装、继承、多态
1.类
类是构造对象的模板或者蓝图,由类构造对象的过程就是创建类的实例;
类里面存放类的成员变量,成员方法,
class student {
private int age; // 成员属性 用private修饰,体现其封装性
private String name;
private String sex;
private static int count;
public void eat() { // 成员方法
System.out.print("吃饭");
}
}
2. 对象:
对象是由类创建出来的一个实例,所以对象是属于类的,对象有三个特征:
对象的行为: 对对象的操作或者方法;
对象的状态: 对对象施加那些方法时对象如何响应;
对象的标识: 如何判断具有相同行为与状态的不同对象;
对象创建的过程:
(1) 为对象在堆中分配一块内存:
(2) 调用合适的构造函数
对象的创建使用new 关键字:
public static void main (String args []) {
student stu=new student(); //使用new 关键字创建出一个student类的对象来,
student.eat(); \\使用对象调用类中的方法
}
3: 对象的初始化:
有了类,有了对象,可是没有数据,这个时候就得初始化对象;
(1) set() 和get()方法
在创建对象后,不能直接用对象调用类中的成员变量,因为面向对象编程的三大特性之一封装,要求不能直接将成员变量暴露在在外面,所以用private修饰,所以要用set()和get()方法来初始化成员变量:
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
public static void main (String args []) {
stu.setSex("boy"); // 赋初值
stu.setName("whvo");
stu.setAge(20);
stu.getSex(); //得到数据成员的值
stu.getName();
stu.getAge();
}
(2) 使用构造方法初始化: --------体现了方法的重载:方法名称相同,但是参数个数不同,参数类型不同
1): 不带参数的构造方法
2): 带参数的构造方法
public student () { // 第一种: 不带参数构造函数
this.name=null; // 此处的this 指向的是当前对象的地址值;
this.age=0;
this.sex=null;
}
public student (int age,String name,String sex) { //第二种:带参数的构造函数
this.name=name; // 此处的this 指向的是当前对象的地址值;
this.age=age;
this.sex=sex;
}
public static void mian(String args [] ) {
student stu=new student (); // 在创建对象时调用无参的构造函数初始化对象;
student stu2=new student("whvo","boy",20); // 调用有参的构造函数进行初始化;
}
(3)静态块初始化 -------------- 只初始化一次
直接在类中使用static关键字初始化静态数据成员,或者里面放置静态方法,而且不需要依赖对象,调用时直接用类名来调用
static {
count = 10;// 只能初始化类中的静态变量
}
(4)实例块初始化
{ //实例块初始化
this.name = “whvo”;
this.sex = “man”;
this.age = 20;
System.out.println(“instance {} init”);
}
初始化的顺序顺序:
静态块初始化>>>>实例代码块初始化>>>>构造函数初始化