概述
如何理解“面向对象编程”这六个字?
首先我们可以通俗易懂的将“面向”理解为“使用”,“对象”理解为“东西”,拼起来的意思就是“使用东西去编程”。
面向对象编程的例子:
Scanner sc = new Scanner(System.in); System.out.println(); Random rd = new Random();
Q:为什么要用面向对象编程?
A:使编程变得更加简单、更加易于理解。
Q:面向对象编程学什么?
A:学习自己设计对象并使用。
设计对象并使用
设计类,创建对象并使用
类:使对象共同特征的描述
对象:真实存在的具体案例
结论:在Java中必须先设计类,才能创建对象并使用。
如何设计类?
public class 类名{
1、成员变量
2、成员方法
3、构造器
4、代码块
5、内部类
}
设计类的例子:
public class Company{ //成员变量 String Boss; String stuff; //方法 public void work(){ } public void finish(){ } }
如何得到类的对象?
类名 对象名 = new 类名();
Company c = new Company();
如何使用对象?
访问属性:对象名.成员变量
访问行为:对象名.方法名()
创建对象之后如何使用
首先我们可以在一个Java中创建一个Company类:
public class Company { String boss; String stuff; public void work(){ System.out.println(boss+"要求星期一到星期六要上班"); } public void time(){ System.out.println(stuff+"每天的上班时间是早上九点到晚上九点,并且中午不能午休!"); } }
然后可以在同目录下的其他Java文件中使用该类,并且对其访问:
public static void main(String[] args) { Company c = new Company(); c.boss = "资本家"; c.stuff = "程序员"; System.out.println(c.boss); System.out.println(c.stuff); c.work(); c.time(); }
输出结果
资本家
程序员
资本家要求星期一到星期六要上班
程序员每天的上班时间是早上九点到晚上九点,并且中午不能午休!
定义类的注意事项
- 类名首字母建议大写,满足“驼峰式”,并且不能使用关键字,必须是合法标识符,且有意义。
- 一个Java文件中可以定义多个class类,但只能一个类是public修饰,并且public所修饰的类名必须是代码文件名。(实际开发中建议一个文件对应一个类)
- 成员变量的完整定义格式:修饰符 数据类型 变量名=初始化值。(一般无需指定初始化值,存在默认值)
构造器
学构造器的目的?
- 真正知道对象具体是通过调用什么代码得到
- 能够掌握为对象赋值的其他简便写法
- 为以后学习面向对象编程的其他内容做支撑
构造器的作用
定义在类中,可以用于初始化一个类的对象,并返回对象的地址(Company c=new Company())(红色标注的即为构造器)
构造器的格式
修饰符 类名(形参列表){
...
}
public class Company{ ... //无参构造器 public Company(){ ... } //有参构造器 public Company(String a,String b){ ... } }
调用构造器得到对象的格式
//类 变量名称 = new 构造器;
Company c = new Company();
Company c1 = new Company("资本家","程序员");
构造器的分类和作用
- 无参构造器(默认存在):初始化对象时,成员变量的数据均采用默认值。
- 有参构造器:在初始化对象的时候,同时可以接收参数为对象进行赋值。
构造器的注意事项
- 任何类定义出来,默认就自带了无参构造器,写不写都会有
- 一旦定义了有参构造器,那么无参构造器就没有了,如果还想用无参构造器,此时就需要自己手写一个无参构造器。
this关键字
this关键字是什么
- 可以出现在构造器、方法中
- 代表当前对象的地址
this关键字的作用
- 可以用于指定访问当前对象的成员变量、成员方法
this出现在有参数构造器中的用法
public class Company{ String bsss; String stuff; public Company(String boss,String stuff){ this.boss = boss; //可以通过this访问到类中成员变量,并对其赋值 this.stuff = stuff; } }
this出现在成员方法中的用法
public class Company{ String bsss; String stuff; public void work(String boss){ System.out.println(this.boss+"和另外一个老板"+boss+"合作");//通过this关键字可以区分传入参数与类中的同名成员变量 } } Company c = new Company(); c.boss = "资本家"; c.work("麻花疼"); //输出结果: //资本家和另外一个老板麻花疼合作
学习完上述以后,可以查看第二部分