java基础篇---------类和对象(OOP)

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”);
}
初始化的顺序顺序:
静态块初始化>>>>实例代码块初始化>>>>构造函数初始化

猜你喜欢

转载自blog.csdn.net/qq_41884976/article/details/83480268