第三章 面向对象编程

3.1 面向对象和面向过程

  1. 面向对象的三大特征:

继承
封装
多态


3.2 Java语言的基本元素:类和对象

  1. 成员变量:这个类中的变量(默认有初始化值)

类变量:加了static关键字的变量,也叫静态变量,通过某一个对象改变类变量则该类的所有对象都会被改变
实例变量:不加static的,只是对具体的对象本身作用,不会改变其他对象的该变量(堆内存中)

  1. 局部变量:类中的方法内定义的变量(栈内存中)(没有默认初始化值)

形参
方法局部变量
代码块局部变量

  1. 方法名首个单词首字母小写,之后的每个单词首字母大写

3.3 类的成员之一:属性

  1. 语法格式
    修饰符 类型 属性名 = 初值;
  • 修饰符:用来修饰变量,指明变量是公有的还是私有的
  • 修饰符private:该属性只能由该类的方法使用
  • 修饰符public:该属性能被该类以外的方法使用
  • 类型:任何基本数据类型,如int、boolean等

3.4 类的成员之二:方法


3.5 对象的创建和使用

  1. new
  2. 操作类的变量
  3. 调用类的方法
  4. 匿名对象:new完后直接用
new.Person().name;

3.6 再谈方法

  1. 方法也叫函数
  2. 方法可以调用方法,但不能再定义方法
  3. 类的访问机制

同一个类中:类方法可以直接访问类的成员变量(类中static方法不能访问非static变量,即static方法只能访问static变量)
不同类中:类A需要创建类B的对象,然后通过类对象来访问其成员

  1. static方法只能访问static成员的原因

1.任何程序都是在内存中执行的
2.static成员属于类本身,在类加载时就为其分配了内存
3.非static成员属于类对象,只有在对象被创建之后才会为其分配内存

  1. 面向对象思想“落地”法则(一)
  1. 关注于类的设计,即类的成员:属性,方法
  2. 类的实例化,即创建类对象
  3. 通过“对象.属性”、“对象.方法”执行
  1. 重载

1.相同的方法名
2. 参数不完全一样
3. 只需要看方法名和参数即可,若方法名和参数完全一样,返回值类型不一样就不算重载

  1. 可变个数的形参
  1. 形参处使用数组(String [] args),当没有参数时需定义一个空数组
  2. java特有(String… args),当没有参数时可以不填
    3.如果一个方法有多个形参,那么一定要把可变形参(…形式)放在最后
  1. 方法的参数传递
  1. 方法只有能被调用才有意义,如果不会被调用就没有意义了
  2. Java里方法的参数传递的方法只有一种:值传递。基本数据类型时值存的是数,引用对象时值存的是地址
  3. java方法参数传递之基本数据类型:就是复制实参的值到形参上。
  4. 方法的参数传递之引用对象:实参中所存的对象的地址复制给形参

3.7 面向对象特征之一:封装和隐藏

  1. 包package和使用包内的类时用import指明
  2. 封装
  1. private,把属性“封装”在类的内部
  2. set和get方法
  3. 通过类中的方法来控制它的属性
  4. 如果一个不封装的话,外部类可以直接访问和改变该属性,但该属性需要被外部现实世界的条件限制不能乱赋值,所以将它封装起来。
  1. 权限修饰符(可见性)
  1. private:类内部
  2. 缺省:同一个类内部可以使用;同一个包可以使用
  3. protected:类内部;同一个包;子类
  4. public:类内部;同一个包;子类;任何地方(在一个Java文件中,可以有多个类,但只能有 一个public类)

3.8 类的成员之三:构造器(也叫构造方法)

  1. 构造方法的名称一定与类的方法一样
  2. 构造方法的权限修饰符与对应的类的权限修饰符一样,不需要返回值
  3. 默认构造方法和显示定义构造方法
  4. 构造器重载

3.9 几个关键字:super、this、package、import

  1. this
  1. 当前类的属性、方法
    2.可以用来调用构造方法:this(),且必须放在首行,不能同时互相调用,变相的自己调用自己。
  1. JavaBean
  1. 类是公有的
  2. 有一个无参拿的公共构造器
  3. 属性一般私有,且有对应的get、set方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值