一.封装

1、为什么要使用封装
在类的外部直接操作类的属性是”不安全的"
2、如何实现封装
   1)、属性私有化:设置属性的修饰符为private
    2) 、提供公共的set和get方法
赋值的方法:setter:   public void setXXX(参数){} XXX:与属性名相同,把属性名的第一个字母改为大写
    参数:与属性的类型一致
取值的方法:getter: public 返回值类型  getXXX(){} 返回值的类型与属性的类型一致
   3) 、在set方法中添加程序流程控制语句

 private String sex;
//set方法
public void setSex(String _sex){
if("男".equals(_sex)||"女".equals(_sex)){
sex = _sex;
}else{
System.out.println("输入性别有误,仅为男或女!");
}
}
//get方法
public String getSex(){
return sex;
}

3、使用封装的好处
封装属性,暴露公共的访问方法,提高数据的安全性
同时方便修改和维护

二.构造方法

1、构造方法的语法
   访问修饰符  构造方法名(参数列表){
       方法体;
   }
2、构造方法的特点

1)、构造方法名必须与类名相同
2) 、构造方法没有返回值类型,也不写void. 如果写了void不再是构造方法,而是成员方法

3、构造方法的分类

1)、默认构造方法,如果类中没有定义构造方法,则在运行时系统提供一个公共的无参的构造方法。 public Student(){}
2)、显示构造方法:在类定义的构造方法。此时系统不再提供公共的无参的构造方法。建议在类显示定义无参的构造方法
4、构造方法何时调用?
在创建对象时,与new关键词一起使用。每个对象仅调用一次
5、构造方法的作用
初始化属性的值。
6、构造方法可以重载吗?
可以。

三.参数传递

1.按值传递

基本类型之间传参是按值传递,形参与实参是两个独立的空间。形参的改变不影响实参的值

2.按地址传递

引用类型之间传参是按“地址"传递,实参传递给形参的是实参所引用对象的”地址".形参与实参引用同一“地址"的对象。
形参改变对象的属性值,实参再访问对象时,为改变后的值。

四.this关键字与static关键字

4.1、this是什么?
this是一个引用。在对象的内部引用当前对象。存放的是当前对象的”地址"
4.2、this可以访问哪些成员
    4.2.1 成员变量
    4.2.2 成员方法
    4.2.3 构造方法
4.3、this在哪里使用? 
    4.3.1、在类成员方法使用:  区分成员变量与同名的局部变量.this.成员变量
    4.3.2、在类成员方法中,访问其他成员方法 : this.成员方法名()
    4.3.3、在类的某个构造方法中,调用类的其他构造方法 :this(参数). 一定写在构造方法的有效代码的"第一行"

好处:实现代码的重用

static:静止的,不变的
1、 修饰属性:静态属性。属于类所有。所有的对象共享
访问方式:  类名.静态属性名
static声明的变量会放在方法区中,static声明的变量只初始化一次,加载类的时候初始化,
如果多个静态变量,会按照静态变量在类中的顺序进行初始化

2、修饰方法  :静态方法
访问方式:类名.静态方法

1)、与成员方法的区别:
a、 成员方法属于对象所有,
成员方法中可以访问成员变量,其他成员方法,静态变量,静态方法,可以使用this关键词
b、静态方法属于类所有,与对象无关。
静态方法中仅可以访问静态变量,静态方法,
不可以直接访问成员变量,成员方法。可以创建对象间接的访问
不可以使用this关键词

3、修饰代码块:在类加载时执行,仅执行一次
语法 : static{ }
1)、与实例代码块的区别:
a、静态代码块在类加载时执行,仅执行一次
b、实例代码块,每创建一个对象执行一次,在构造方法前执行

4、修饰内部类: 静态内部类

5、注意不能修饰局部变量

Java面向对象(二)的更多相关文章

  1. Java面向对象(二)

    面向对象(Object Oriented) Java支持面向对象三大特性:封装.继承.多态.(抽象)1.封装(Encapsulation)封装:隐藏对象内部的复杂性,只对外公开简单的接口.便于外界调用 ...

  2. Java面向对象(二) 接口、多态和泛型

    一.接口 二.多态 多态是同一个行为具有多个不同表现形式或形态的能力. 2.1 类型转换 转换方式 隐式 向上转型 对于基本数据类型,存储容量低的可自动向存储容量高的类型转换 对于引用变量,子类可被转 ...

  3. 深入java面向对象二:final关键字

    文章内容源于对<疯狂java讲义>及<疯狂Java:突破程序员基本功的16课>学习和总结. 一. final成员变量 final 修饰变量时,表示该变量一旦获取了值就不可以改变 ...

  4. 实验二 Java面向对象程序设计

    实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...

  5. 20145212《Java程序设计》实验报告二 《 Java面向对象程序设计》

    20145212 实验二< Java面向对象程序设计> 实验内容 单元测试 三种代码 伪代码 百分制转五分制: 如果成绩小于60,转成"不及格" 如果成绩在60与70之 ...

  6. 20145213《Java程序设计》实验二Java面向对象程序设计实验报告

    20145213<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装,继承,多态 初步掌握UML建模 熟悉S.O. ...

  7. 20145206《Java程序设计》实验二Java面向对象程序设计实验报告

    20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...

  8. 20145308刘昊阳 《Java程序设计》实验二 Java面向对象程序设计 实验报告

    20145308刘昊阳 <Java程序设计>实验二 Java面向对象程序设计 实验报告 实验名称 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面相对象三要素:封 ...

  9. Java程序设计 实验二 Java面向对象程序设计

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:李海空  学号:20135329 成绩:             指导教师:娄嘉鹏 ...

  10. 20145113 实验二 Java面向对象程序设计

    20145113 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 1.初 ...

随机推荐

  1. MySQL基本命令(待更新...)

    数据库操作SQL语句 show databases; 表操作SQL语句 数据库权限操作SQL语句 参考链接 :http://www.cnblogs.com/bzys/archive/2013/01/2 ...

  2. Javascript入门(四)条件控制语句

    一.条件控制语句 1. if <script type="text/javascript"> var num = 1 if( num == 3 ){ alert(&qu ...

  3. mysql 架构 ~ MGR 与PXC的对比

    一 简介 MGR和PXC的对比 二  WriteSet1 定义 是组件对于写节点应用事务生成binlog的再封装,用来验证其他节点的事务冲突 PXC构成key db_table_组件值data bin ...

  4. Spring4之AOP

    [www.dev1234.com]一头扎进Spring4视频教程\一头扎进Spring4源码\[www.java1234.com]<一头扎进Spring4>第七讲 源码 [www.dev1 ...

  5. 迅为-i.MX6Q核心板_四核工业级

    飞思卡尔Freescale Cortex A9 四核处理器处理器:CPU Freescale Cortex-A9 四核 i.MX6Q,主频 1.2 GHz 核心板工艺:十层设计,沉金工艺基本参数:内存 ...

  6. Cascade R-CNN论文讲解(转载)

    转载链接:https://blog.csdn.net/qq_21949357/article/details/80046867 论文思想:为了解决IOU设置带来的最终的AP值,作者引入了cascade ...

  7. linux 用户密码到期导致ftp业务失败

    外网反馈某业务失败,查看log发现FTP连接失败,定位发现提示密码不对,重新修改FTP密码后恢复正常. 但同时定位了下FTP密码被修改的原因,发现是密码过期了,因此查了下资料,查得修改过期时间的方法 ...

  8. Kafka监控KafkaOffsetMonitor【转】

    1.概述 前面给大家介绍了Kafka的背景以及一些应用场景,并附带上演示了Kafka的简单示例.然后,在开发的过程当中,我们会发现一些问题,那就是消息的监控情况.虽然,在启动Kafka的相关服务后,我 ...

  9. Windows PowerShell 入門(2)-基本操作編 2

    前回に引き続きMicrosoftが提供している新しいシェル.Windows Power Shellの基本操作方法を学びます.基本操作編第2弾の今回は.パイプの使用方法を中心としたコマンドレットの操作方 ...

  10. 题解-CodeForces835F Roads in the Kingdom

    Problem CodeForces-835F 题意:求基环树删去环上任意一边后直径最小值,直径定义为所有点对最近距离的最大值 Solution 首先明确删去环上一点是不会影响树内直径的,所以应当先把 ...