第八章 面向对象编程(中级) 上


在这里插入图片描述
第七章 面向对象编程(基础) 下

1.IDE(集成开发环境) - IDEA

IDEA介绍

1.IDEA 全称 IntelliJ IDEA
2.在业界被公认为最好的Java开发工具
3.IDEA是JetBrains公司的产品, 总部位于捷克的首都布拉格
4.除了支持Java开发, 还支持HTML, CSS, PHP, MySQL, Python等
在这里插入图片描述

Eclipse介绍

1.Eclipse是一个开放源代码的, 基于Java的可扩展开发平台.
2.最初是由IBM公司耗资3000万美金开发的下一代IDE开发环境
3.2001年11月贡献给开源社区
4.Eclipse是目前最优秀的Java开发工具之一
在这里插入图片描述

IDEA下载安装

官网: https://www.jetbrains.com/idea/download/?section=windows

在这里插入图片描述
在这里插入图片描述

此电脑⇒ 属性⇒ 系统类型 ⇒ 查看操作系统位数
在这里插入图片描述
在这里插入图片描述

IDEA使用

使用IDEA创建Java项目(project), 看看IDEA是如何使用的, IDEA是以项目的概念, 来管理我们的java源码的

1.创建一个java项目 - hello

在这里插入图片描述

2.创建一个Hello类

在这里插入图片描述

3.调整字体大小

在这里插入图片描述

4.运行项目

在这里插入图片描述

●IDEA使用技巧和经验
√设置字体
菜单 file -> settings
在这里插入图片描述
在这里插入图片描述字体加粗
在这里插入图片描述更换主题
在这里插入图片描述

√字符编码设置
在这里插入图片描述

●课堂练习
使用IDEA开发一个java项目 testpro01, 创建一个类MyTools, 编写一个方法, 可以完成对int数组冒泡排序的功能.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

IDEA常用快捷键

1.删除当前行, 默认是ctrl + Y, 自己配置 ctrl + d
2.复制当前行, 自己配置 ctrl + alt + 向下光标
3.补全代码 alt + / 【类似cmd的tab键】
4.添加注释和取消注释 ctrl + / 【第一次是添加注释, 第二次是取消注释】
在这里插入图片描述

5.导入该行需要的类, 先配置auto import, 然后使用 alt+enter 即可.
在这里插入图片描述

6.快速格式化代码 ctrl + alt + L

7.快速运行程序 自己定义 alt + R

8.生成构造器等 alt + insert [提高开发效率]

9.查看一个类的层级关系 ctrl + H [学习继承后, 非常有用]

10.把光标放在一个方法上, 输入 ctrl + B, 可以定位到方法 [学习继承后, 非常有用]

11.自动地分配变量名, 通过 在后面 .var [最喜欢的]

12.还有很多其它的快捷键…

在这里插入图片描述

这是作为一个专业Java程序员必备技能.

模板/自定义模板

菜单 file -> settings -> editor -> Live templates
查看有哪些模板快捷键/可以自己增加模板

模板可以高效地完成开发, 提高速度
在这里插入图片描述在这里插入图片描述

2.包

看一个应用场景

现在有两个程序员共同开发一个java项目, 程序员xiaoming希望定义一个类取名 Dog, 程序员xiaoqiang也想定义一个类也叫 Dog. 两个程序员吵了起来, 怎么办?
在这里插入图片描述

包的三大作用

1.区分相同名字的类

2.当类很多时, 可以很好地管理类 看Java API 文档
   把功能相同的或者相似的类放在同一个包管理
   查看jdk的源码文件
在这里插入图片描述

3.控制访问范围

包基本语法

package com.zzw
说明:
1.package 关键字, 表示打包(把什么进行打包呢? ⇒ 把下面写的类进行打包)
2.com.zzw: 表示包名

包的本质分析(原理)

包的本质 实际上就是创建不同的文件夹/目录, 来保存类文件, 画出示意图

虽然两个Dog类重名, 但是它们是在不同的文件夹下面, 也就是说在不同的包下面, 这是允许的.
在这里插入图片描述

快速入门

1.新建chapter08 java项目.

2.使用打包技术来解决上面的问题
在这里插入图片描述

不同包下Dog类

在这里插入图片描述在这里插入图片描述

3.测试com.use.Test

package com.use;

import com.xiaoqiang.Dog;

public class Test {
    public static void main(String[] args) {

        Dog dog = new Dog();
        System.out.println(dog);//com.xiaoqiang.Dog@1b6d3586

        com.xiaoming.Dog dog1 = new com.xiaoming.Dog();
        System.out.println(dog1);//com.xiaoming.Dog@14899482
    }
}

包的命名

命名规则
只能包含数字, 字母, 下划线, 小圆点, 但不能用数字开头, 不能是关键字或保留字
demo.class.exec1 //错误 class是关键字
demo.12a //错误 12a 是数字开头
demo.ab12.oa //正确

命名规范
一般是小写字母 + 小圆点, 一般是 com.公司名.项目名.业务模块名
比如: com.zzw.oa.model; com.zzw.oa.controller;
举例:
com.sina.crm.user //用户模块
com.sina.crm.order //订单模块
com.sina.crm.utils //工具类
把不同业务模块的类放在相应的包下面

常用的包

一个包下, 包含很多的类, java中常用的包有:
java.lang.*     //lang包是基本包, 默认引入, 不需要再导入
java.util.*       //util包, 系统提供的工具包, 工具类, 使用比如 Scanner
java.net.*      //网络包, 网络开发
java.awt.*     //是做java的界面开发, GUI

如何引入包

com.zzw.pkg包 Import01.java
语法: import 包;
我们引入一个包的主要目的: 是使用该包下的类
比如 import java.util.Scanner; 就只是引入一个类Scanner
import java.util.*; 表示将java.util 包下所有类都引入
推荐需要用到哪个类, 就导入哪个类, 参考ArrayList源码
在这里插入图片描述

案例: 使用系统提供 Arrays 完成 数组排序

注意事项和使用细节

com.zzw.pkg.PkgDetail.java
1.package 的作用是声明当前类所在的包, 需要放在类的最上面, 一个类中最多只有一句package
2.import指令 位置放在package的下面, 在类定义前面, 可以有多句且没有顺序要求.


在学习了包后, 类的定义就可以进一步完善了.
◀️▶️
在这里插入图片描述

3.访问修饰符

基本介绍

java提供四种访问控制修饰符号, 用于控制方法和属性(成员变量)的访问权限(范围):

  1. 公开级别: 用public修饰, 对外公开.
  2. 受保护级别: 用protected修饰, 对子类和同一个包中的类公开.
  3. 默认级别: 没有修饰符号, 向同一个包的类公开.
  4. 私有级别: 用private修饰, 只有类本身可以访问, 不对外公开.

4种访问修饰符的访问范围

com.zzw.modifier

访问级别访问控制修饰符同类同包子类不同包
公开public
受保护protected×
默认没有修饰符××
私有private×××

注意事项和使用细节

1.修饰符可以用来修饰类中的属性, 成员方法以及类
2.只有默认的和public才能修饰类!, 并且遵循上述访问权限的特点.
3.因为没有学习继承, 因此关于在子类中的访问权限, 我们讲完子类后, 再回头讲解.
4.成员方法的访问规则和属性完全一样.

在这里插入图片描述

4.封装

英语单词
encapsulation

基本介绍

面向对象三大特征: 封装, 继承和多态

封装介绍

封装(encapsulation)就是把抽象出的数据[属性]和对数据的操作[方法]封装在一起, 数据被保护在内部, 程序的其它部分只有通过被授权的操作[方法], 才能对数据进行操作.
在这里插入图片描述

封装的理解和好处

1.隐藏实现细节 方法(连接数据库)<–调用(传入参数…)
2.可以对数据进行验证, 保证安全合理
Person {name, age}
Person p = new Person();
p.name = “赵志伟”;
p.age = 1200 ;

封装的实现步骤 (三步)

1.将属性进行私有化private 【不能直接修改属性】

2.提供一个公共的(public)set方法, 用于对属性进行判断并赋值
public void setXxx(类型 参数名) { //Xxx 表示某个属性
        //加入数据验证的业务逻辑
        属性 = 参数名;
}

3.提供一个公共的(public)get方法, 用于获取属性的值
public 数据类型 getXxx(类型 参数名) { //权限判断, Xxx 某个属性
        return xx;
}

快速入门

√看一个案例com.zzw.encap

在java中如何实现这种类似的控制呢? 请看一个案例. Encapsulation01.java
不能随便查看人的年龄, 工资等隐私, 并对设置的年龄进行合理的验证, 年龄合理就设置, 否则给默认值.年龄必须在 1-120 之间, 工资不能直接查看, name的长度在 2-6 字符.

将构造器和setXxx结合

√看一个案例

//有三个属性的构造器
public Person(String name, int age, double salary) {
// this.name = name;
// this.age = age;
// this.salary = salary;
//我们可以将 set 方法写在构造器中,这样仍然可以验证
setName(name);
setAge(age);
setSalary(salary);
}

课堂练习

com.zzw.encapAccountTest.javaAccount.java
创建程序, 在其中定义两个类: Account和AccountTest类体会Java的封装性.
1.Account类要求具有属性: 姓名 (长度为2为3位或4位), 余额(必须>20), 密码(必须是六位), 如果不满足, 则给出提示信息, 并给默认值.
2.通过setXxx的方法给Account 的属性赋值
3.在AccountTest中测试

提示知识点:
String name = “”;
int len = name.length(); //字符串的长度

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~ 小团子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值