目录
一,什么是面向对象
java是基于面向对象的,关注的是对象,是将一个事情拆分成不同的对象,靠对象之间的交互完成。
面向过程注重的是过程,在整个过程所涉及的行为,就是功能。
面向对象注重的是对象,也就是参与过程所设计的主题。是通过逻辑将一个个功能实现连接起来。
【面向对象的概念】
面向对象是思考问题的一种思考方式,是一种思想。
面向对象的好处:将复杂的事情变得简单,只需要面对一个对象就行。
二,类和类的实例化
类就是一类对象的统称。对象就是这一类具体化的一个实例。
简单的一个小例子:做月饼需要模子,这个模子就是一个类,而用模子做出来的月饼就是一个个的对象,一个模子可以产生无数的对象。
【基本语法】
class<class_name>{
field; //成员属性
method; //成员方法
}
//实例化对象
<class_name> <对象名>=new <class_name>();
class person{
public int age;
public String name;//成员属性
public void eat(){
System.out.println("吃饭");
}
public void sleep(){
System.out.println("睡觉");//成员方法
}
}
三,类的成员
1,属性(字段,成员变量):用于描述一个类中包含那些数据
2,方法:就是我们所熟知的方法,用于描述一个对象的行为
class person{
public int name="zhangsan";
public void show(){
System.out.println("我叫"+name);
}
}
但我们要注意有一种特殊的方法叫做构造方法,在使用new实例化新对象是会自动被调用,用于完成初始化的操作。当类中没有显示声明构造方法是,会自动生成一个构造函数。构造函数必须与类名相同,构造函数没有返回值类型的声明,构建方法也支持重载,这些构造方法这是参数不同。
public class test {
public static void main(String[] args) {
person p1=new person();
person p2=new person("李四",28,"男");
p1.show();
p2.show();
}
}
class person{
private String name;
private int age;
private String sex;
public person(){
this.name="张三";
this.age=19;
this.sex="nan";
}
public person(String name,int age,String sex){
this.name=name;
this.sex=sex;
this.age=age;
}
public void show(){
System.out.println("我叫"+name+"年龄"+age+"性别"+sex);
}
}
四,封装
封装的本质就是让类的调用者不必了解类的实现者是如何实现的,就像一台汽车一样,他要发动起来内部要进行很复杂的操作,但是驾驶者只用一键启动就可以发动起来,驾驶员根本不用了解内部是如何让实现的。封装这一个功能体现了他的保护性与易用性。
用private关键字来实现封装,被private修饰,该属性就只能在类内部可见,出了类就无法在继续使用。他与public的区别就是当被public修饰是可以被类的调用者使用的,而private相反。
当我们封装完成后就无法再继续直接使用了,因此我们要借我getter和setter来对其进行访问和修改。
public class test {
public static void main(String[] args) {
person p1 = new person();
p1.setA(15);
p1.show();
}
}
class person{
private int a;
public void setA(int a) {
this.a = a;
}
public int getA() {
return a;
}
public void show(){
System.out.println(a);
}
}
五,this关键字
通过this关键字可以明确的访问一个类的成员变量,解决成员变量与局部变量名称冲突问题。
通过this关键字可以明确的访问一个类的成员变量,解决成员变量与局部变量名称冲突问题,表示从类中寻找成员变量。
通过this修饰方法,表示调用本类的方法
调用本类的普通方法 this.方法名称();
调用本类的构造方法this(参数)