面向对象三大特性:封装,继承,多态
类:对象的蓝图,生成对象的模板,是对一类事物的描述,是抽象的概念上的定义
对象:是实际存在的该类事物的每个个体,也称为实例
类之间三种关系:依赖关系(uses-a),聚集关系(has-a),继承关系(is-a)
面向对象:
1.将复杂的事情简单化
2.将以前的过程中的执行者,变成了指挥者
3.这种思想符合现在人们思考习惯的一种思想
匿名对象使用场景:
1.当对方法只进行一次调用时;
成员:
1.成员变量:事物的属性
2.成员函数:事物的行为
注意:属性是用于存储数据的,直接被访问量,容易出现安全隐患,所以类中的属性通常被私有化,并对外提供公共的访问方法,set() get();
成员变量和局部变量的区别:
1.成员变量直接定义在类中,局部变量定义在方法中,参数上,语句中;
2.成员变量在这个类中有效,局部变量只在自己所属的大括号内有效;
3.成员变量存于堆内存中,随着对象的产生而存在,消失而消失,局部变量存于栈内存中,随着所属区域的运行而存在,结束而释放;
构造函数:对象创建时都需要初始化才可以使用
用于给对象进行初始化,给与之对应的对象初始化,具有针对性;
特点:
1.函数名与所在类名相同
2.不需要定义返回值类型
3.没有具体的返回值
注意:一个类中出现多个构造函数,它们的存在时可以重载体现的
分析事物时,发现具体事物一出现,就具备了一些特征,那就将这些特征定义到构造函数内
构造代码块和构造函数有什么区别:
1.构造代码块:时给所有的对象进行初始化,只要对象一建立,就会调用这个代码块
2.构造函数:是给与之对应的对象进行初始化,具有针对性
类的访问权限
1.public:
对于成员,类来说:任何其他类都可以访问它们,不管是否在同一个包
2.friendly:
对于成员来说:如一个类的成员没有任何权限修饰,那么它们就是缺省包访问权限,用friendly来表示。
对于类来说:同一个包中的类可以用,类只可以声明为public或friendly。
3.private:
对于成员来说:只能在该成员所属的类中访问
对于类来说:类不可以声明private
4.protected:
对于成员来说:相同包中的类可以访问,基类通过protected把基类的成员访问权限赋予派生类不是所有类
对于类来说:类不可以声明为protected
注:
1.每个类文件仅能有一个public class
2.public class的名称必须和其他类文件同名
3.一个类文件可以不存在public class
4.class 不可以时private和protected
5.如果不希望那个任何产生某个class 的对象,可以将该类得所有构造函数设置成private。但是即使这样也可以生成该类的对象,就是class 的static 的成员(属性和方法)可以办到。