java基础-----类和对象(面向对象笔记整理)

一、面向对象概述
概述:程序开发初期使用的是结构化的开发语言,后来发现弊端比较多,随着时代的发展,已经不适合这种开发语言。这时人们引入了另一种开发思想,即面向对象思想。它是人类最自然的一种思考方式,是对现实世界的对象进行了建模操作。在java代码中万物皆对象。

  1. 对象
    对象是事物存在的实体,如人类、小鸟、高楼大厦等都是对象。 面向对象程序设计思想是以对象来思考问题,把复杂的问题简单化。可以把对象划分成两个部分,即静态部分和动态部分。根据事物的特征也可划分为:静态部分------叫属性;动态部分-----叫行为;而类包含了对象以及对象的属性(静态)和行为(动态)。

  2. 类是同一类事物的统称。如:人类、家禽、鸟类、鱼类等。在java中,类对象的行为是以方法的形式定义的,对象的属性是以成员变量的形式定义的。
    类:封装了对象的:
    <1.成员变量(属性/静态部分)如:鸟类-----成员变量:属性(翅膀\爪子\嘴)
    <2.方法 (行为/动态部分) 方 法: 行为 (飞行\捕食\吃)
  3. 面向对象的特点
    <1>封装:将对象的属性和行为封装起来,对客户隐藏实现细节.保证内部数据结构完整,提高程序可维护性,方便用户使用程序;
    <2>继承:类与类之间关联的一种形式,可以缩短开发时间,提高代码的复用性和扩展性,减少错误几率;(如:父子关系)
    <3>多态:将父类对象应用于子类的特征,并可以选择多个运行状态就是多态.增强了代码的灵活性和扩展性,更方便维护;
    (在多态的机制中,父类通常被定义为抽象类,里面的方法叫抽象方法; 接口:由抽象方法组成的集合.
    抽象类不能实例化对象;)

二、类

  1. 成员变量-----对应的是类对象的属性,可以设置为数据类型,也是普通的变量,可以设置初始值,也可以不设置,有默认值;
  2. 成员方法-----对应的是类对象的行为,可以有参数,参数可以是对象,也可以是基本数据类型的变量.返回值和不返回值可选择;
  3. 权限修饰符–控制类和类成员变量以及成员方法的访问.public(公共的) /private(私有的) /protected(本包内)
    选择原则:
    尽量选择小范围访问
    public 是与其他开发者的一个契约,约定公开的东西,会尽量稳定不变
    private隐藏,便于维护修改
  4. 局部变量----方法内定义的变量.只在方法内部使用叫局部. 使用时必须赋值或初始化,否则编译错误;
  5. this关键字—代表本类对象的引用.用于引用对象的成员变量和方法;可以调用变量和方法;

三、类的构造方法
除成员方法外,还存在的一种特殊类型的方法,就是构造方法.构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的.每实例化一个对象时,类都会自动调用构造方法;一个类,必须有构造方法,如果自己不定义,编译器编译代码时,会添加默认构造方法;
特点:构造方法没有返回值;
构造方法的名称要与本类的名称相同;

四、静态变量、常量和方法
static:用static修饰过得变量/常量和方法被称为静态的变量/常量和方法;
使用原则:能不用就不用
静态是“非面向对象”的语法;
使用场景:
需要共享数据
工具方法:
Math.sqrt()
Math.random()
String.valueOf()
Integer.parseInt()
静态代码中,不能直接调用非静态成员

final:可以修饰常量、方法、类
常量
final int a = 5;
a = 6;//错
final Point a = new Point(3, 4);
a.x = 30;//对
a.y = 40;
a = new Point(1,2);//错
a = null;//错
final 方法,不能重写

类:不能被继承
System
String
Integer

常量:
static final int MAX_VALUE=100;
static/ final:
final 不可变
static 节省内存
命名习惯:
全大写
单词之间用下划线连接

五、类的主要方法
主方法是类的入口点,定义了程序从何开始;提供对程序流向的控制,java编译器通过主方法来执行程序;
主方法定义特征:
1.主方法是静态的,如果要在主方法中调用其它方法,则该方法必须也是静态的;
2.主方法没有返回值
3.主方法的形参是数组.
六、对象

  1. 对象的创建-----对象是由类抽象出来的(对象是被构造方法new出来的);
  2. 访问对象的属性和行为------new一个对象后,可以使用"对象.类成员"来获取对象的属性和行为;
  3. 对象的引用-----可以看做是对象的"遥控器".引用只是存放对象的内存地址;
  4. 对象的比较-----运算符"=="比较的是地址是否相等; equals()比较的是内容是否相等;不一样
  5. 对象的销毁-----对象都有生命周期,结束时会被回收;java虚拟机有垃圾回收机制;垃圾=超范围||赋值为null;

猜你喜欢

转载自blog.csdn.net/weixin_44458228/article/details/86660317