面向对象的特点主要可以概括为封装性、继承性和多态性。

面向对象提出了两个概念,即类和对象,在java程序中类和对象是最基本、最重要的单元。类表示某类群体的一些基本特征抽象,对象表示一个个具体的事物。

类的定义格式:

public class 类名 {
	//成员变量;
	//成员方法;
}

  注意:1、class是类名,需要小写。

               2、类名要符合标识符的命名规则和命名规定。

               3、类名尽量用有意义的英文单词(方便区分)。

那我们就用一个学生类来做一个示例:(其中包括姓名name和年龄age还有sex是成员变量,read()是成员方法)

public class student {
	String name;//定义String类型的变量name
	int age;//定义int类型的变量age
	String sex;//定义string类型的变量sex
	//定义read()方法
	void read() {
		System.out.println("大家好,我是"+name+",我在看书!");
	}

}

 在java中,定义在类中的变量称为成员变量,定义在方法中的变量称为局部变量。

package java;

public class student {
	String name;//定义String类型的变量name
	int age=30;//定义int类型的变量age;类中的变量称为成员变量
	String sex;//定义string类型的变量sex
	//定义read()方法
	void read() {
		int age=50;//方法内部定义的变量称为局部变量
		System.out.println("大家好,我今年"+age+"岁,我在看书!");
	}
public static void main(String[] args) {
	student s=new student();
	s.read();
}
}

  

用new关键字创建对象的具体格式:

类名 对象名称=null;

对象名称=new类名();

 

对象名称.属性名

对象名称.方法名

对象是类的实例,类是对象的模板;

类是抽象的,对象是具体的。

我们以两辆小汽车为例:

 

c车:绿色,5
d车:黑色,7座。
属性:颜色、乘坐人数;行为:运行、跑。

封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

好处有:1.将变化隔离 2.便于使用 3.提高重用性 4.提高安全性

原则:1.将不需要对外提供的内容都隐藏起来 2.把属性都隐藏,提供公共方法对其访问。

我们可以用private将age变量隐藏起来

将年龄age私有化以后,在这个类以外(PersonTest类)即使建立了对象也不能直接访问。但是人应该有年龄,就需要在Person类中提供age对应访问方式,创建一个方法。Java中一般对于私有的属性都会以“get/set”为前缀定义方法名,对其进行访问。

构造方法

package com.sdbi.ljh;

class Person {
	private String name;// 定义String类型的变量name
	private int age; // 定义int类型的变量age
	Person() {}
	Person(String n) {
		name = n;
		}
	Person(String n, int a) {
		name= n;
		age = a;
		}// 定义speak() 方法
	void speak() {
		System.out.println("大家好,我是" + name + ",我今年" + age + "岁!");
		}
	}
class PersonTest {
	public static void main(String[] args) {
		Person p1 = new Person();
		p1.speak();
		Person p2 = new Person("张三");
		p2.speak();
		Person p3 = new Person("李四", 18);
		p3.speak();}
	}
	

  

 

this关键字的作用:

1、使用this关键字调用本类中的属性,调用成员方法,调用本类的方法。

需要注意:

只能在构造方法中使用this调用其他构造方法,不能在成员方法中通过this调用其他构造方法;

在构造方法中,使用this调用构造方法的语句必须位于第一行,且只能出现一次;

不能在一个类的两个构造方法中使用this互相调用。

java的四种访问控制权限:public、protected、default、private

(1) private: 属于私有访问权限,用于修饰类的属性和方法。

(2) default:  属于默认访问权限。如果一个类中的属性或方法没有任何的访问权限声明,则该属性或方法就是默认的访问权限。

(3)protected:属于受保护的访问权限。一个类中的成员使用了protected 访问权限,则只能被本包及不同包的子类访问。

(4) public:  属于公共访问权限。如果 个类中的成员使用了 pubie 访问权限,则该成员可以在所有类中被访问,不管是否在同一包中。