一、初识面向对象
1.什么是面向对象?
万物皆对象。
人关注对象。
人关注事物信息。
2.类和对象
类是模子,确定对象将会拥有的特征(属性)和行为(方法)。
对象是类的实例表现。
类是对象的类型。
对象是特定类型的数据。
3.属性和方法
属性:对象具有的各种静态特征。
对象有什么?
方法:对象具有的各种动态行为。
对象能做什么?
4.类和对象的关系。
类是抽象的概念,是一个模板。
对象是一个看得到、摸得着的具体实体。
类实例化后就是对象。
5.包名的推荐命名规范
首先是因为字母小写。
其次是域名的倒序。
创建包,在当前包里创建类。
package com.imooc.animal; /** * 宠物猫类 */ public class Cat { //属性(成员属性):有什么? 昵称、年龄、体重、品种 String name; //昵称 int month; //年龄 double weight; //体重 String species; //品种 //方法(成员方法):做什么? 跑动、吃东西 //跑动方法 public void run(){ System.out.println("小猫会跑"); } //吃东西的方法 public void eat(){ System.out.println("小猫吃鱼"); } }
创建的是关于宠物猫的类,主要包含的成员属性(属性)有昵称、年龄、体重、品种。主要包含的成员方法(方法)有跑动方法,吃东西的方法。
重写类中的方法
public void run(String name){ System.out.println(name + "快跑"); }
创建测试类
package com.imooc.animal; public class CatTest { public static void main(String[] args){ //对象实例化 Cat one = new Cat(); //测试 one.eat(); one.run(); one.name="花花"; one.month=2; one.weight=1000; one.species="英国短毛猫"; System.out.println("年龄: " + one.month); System.out.println("昵称: " + one.name); System.out.println("体重: " + one.weight); System.out.println("品种: " + one.species); one.run(one.name); } }
可以在测试类中调用重写的run方法,这样就会读出我们传入的参数。
6.单一职责原则,有且只有一个引起功能变化的原因。
一个类只有一个功能,只能干一件事。如果一个类里的功能很多,那么这个类就会交融和耦合性就会大大的增加,被复用的可能性就会减少。
将不同的职责,放到不同的类当中,当某一方发生变化对另一方的影响就会降低好多。
7.对象实例化
实例化对象的过程可以分为两部分,声明对象Cat one,实例化对象new Cat(); Cat one = new Cat();
声明对象是在栈里执行的,实例化对象实在堆里执行的。
栈主要保存局部变量,而堆主要保存动态数据。
通过new关键字,它会进行新空间的实例化,相当于开辟了两块新的空间,而且彼此之间是互不影响的。
声明对象也叫声明实例,声明对象应用。
第一步先在栈空间中声明一个对象,第二步使用new关键字在堆中开辟一个空间,第三步通过赋值符号把堆当中的赋值符号存到栈当中。
8.注意事项:
需要多次访问同一对象时,必须进行声明。
同一作用范围内,不能定义同名对象。
可以同时声明多个引用,用逗号分隔。
二、构造方法介绍
1.构造方法(无参构造方法)
构造方法也叫构造函数,构造器。构造方法不能单独调用,必须配合new关键字。
构造方法与类同名且没有返回值,构造方法的访问修饰符有public,构造方法只能在对象实例化的过程中调用。
2.构造方法(带参构造)
this关键字,代表当前对象,谁调用了它,谁就是当前对象。
通过this()调用构造方法,必须放在方法体内第一行。必须是同一个类的构造方法之间进行调用,别的方法不能直接调用构造方法。
1.初识面向对象。
2.构造方法介绍。