IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Java语言基础-day8 -> 正文阅读

[开发工具]Java语言基础-day8

封装

封装的步骤

  1. 所有属性私有化,使用private关键字修饰,表示私有的,修饰的所有数据只能在本类中访问,在外部程序中不能访问,属性很安全。
  2. 对外提供简单的操作入口,以后外部程序想要访问这个类的私有属性,必须通过这些简单的入口访问: 对外提供两个公开的方法:set(修改)方法和get(读取)方法。
  3. set方法命名规范:public void setAge(形参){}
  4. get方法命名规范:public int getAge(形参){}

set和get方法没有static修饰
有static修饰的方法调用:类名.方法名(实参);
没有static修饰的方法调用:引用.方法名(实参);
封装的作用是可以将修改的属性给与条件,透明性,让用户看不到复杂。

快捷键生成所有的set和get方法:右键–>source(alt+shift+s)–>generate getters and setter

构造方法(构造器)constructor

语法结构:修饰符列表+构造方法名(形参){构造方法体}
构造方法不能指定返回值,因为返回值就是它自己。
构造方法名必须和类名保持一致。
构造方法的作用

  1. 构造方法的意义是通过new的调用创造对象。
  2. 创建对象的同时,初始化实例变量的内存空间。在堆内存中初始化实例变量(查看访问的是哪个方法,按ctrl建鼠标移动到查看的元素上,出现下划线单击)

如果没有写构造方法,系统默认会给这个类一个无参数的构造方法。 但是只要写了一个构造方法,那么系统就不会再自动给与无参数的构造方法。必须手动的构造无参数的构造方法。
同一个类的构造方法可以重载。

右键–>source–>gengerate constructor using fields(可以选择生成有参数的构造方法,调用的时候可以初始化实例变量)

myeclipse支持多行编辑,右上角(toggle block…)

this关键字

this是一个引用,是一个变量,this变量中保存了内存地址指向了自身,this存储在JVM堆内存对象内部。
当一个动作/行为执行的过程当中是需要对象参与的,那么这个方法一定要定义为实例方法。不要带static关键字,需要用引用.来调用。
this出现在实例方法中,指向当前执行此动作的对象。
有static的方法中,不能使用this。
带有static的方法中不能直接访问实例变量和实例方法,需要先创建对象。
一个实例方法中可以直接调用实例方法,不需要再创建对象。
用来区分局部变量和实例变量的时候,this.不能省略。
构造方法调用构造方法直接用this(),必须出现在构造方法第一行。

static关键字

如果一个变量在一个类中都一样,比如中国人的国籍都是中国,则使用static修饰这个变量,变为静态变量,内存空间在类加载的瞬间就开辟了。静态变量存储在方法区内存中。
静态代码块: static{Java语句},写在类最开始,在类加载的时候执行,只能执行一次,并且比main方法执行的早。可以编写多个静态代码块。
当有时候希望在类加载的时候执行某个动作,就需要用到静态代码块,比如日志等。

继承

继承的基本作用:代码复用,还延伸出了多态和方法的覆盖。
修饰符列表 +class+ 类名 +extends +父类名{}
一个类只能继承一个类。在c++中支持多继承。
父类又被称为基类,超类superclass
子类又被称为派生类subclass
私有的不支持继承,构造方法不支持继承,其他都继承。
虽然只能继承一个类,但是可以间接继承其他类。
Java中一个类默认继承Java.lang.object类。

方法的覆盖override

当父类中的方法已经无法满足当前子类业务需求,子类有必要将父类继承过来的方法需要将该方法覆盖。
子类覆盖方法:返回值相同,方法名相同,形参列表相同
访问权限可以更高,不能更低。
抛出异常只能更多,不能更少。
静态方法不存在覆盖。
覆盖只谈方法,不谈属性。

多态

向上转型(upcasting):子类型转换为父类型,自动转换
向下转型(downcasting):父类型转换为子类型,强制转换
Java中可以让父类引用指向子类型对象:Animal a=new Cat();
a可以访问父类和子类都有的方法,但是不可以访问子类独有的方法,因为它定义的是Animal类,只有将父类(Animal)转换成子类(Cat)才可以进行访问子类Cat类独有的方法。向下转型。Cat b=(Cat)a;
a instanceof Animal 结果为true:a是Animal类型,false不是。

Debug As:调试

多态最重要的一个作用:降低类和类之间的耦合度,让类有更高的扩张力。

例题

  • 一个主人类,一个小狗类,一个猫类。
  • 狗类和猫类都有一个动作行为吃方法。
  • 主人类有一个喂养宠物的feed方法,形参分别是Cat c,和Dog d。
  • 测试中调用喂养方法:zcx.feed(tom);
  • 上述程序中没有使用Java的多态,导致程序的耦合度很高,每次添加一个新的宠物,都会在主人类中添加新的feed方法。
  • 使用多态机制,创建一个宠物类,每个宠物狗,猫等都继承这个宠物类,并且用方法覆盖来改写该宠物是怎么吃饭的。
  • 主人类的方法:public void feed(Pet pet){pet.eat();}
  • 在调用主人喂养的方法:zcx.feed(new Cat());
  • 此时面向抽象的宠物,而不是具体的狗或者猫。

final关键字

final修饰的类无法继承
final修饰的方法无法被覆盖
final修饰的变量一旦赋值不可以重新赋值
final修饰的实例变量必须手动赋值,不能使用系统默认值。
final修饰的引用,一旦指向某个地址后就不能指向另一个地址后。但是内部的内存数据是可以修改的。
常量(一般全部大写):public static final 类型 常量名 =值

package包

方便程序的管理。
不同功能的类分别放到不同的包内,比较方便。
package +包名
命名规范:公司域名倒序+项目名+模块名+功能名

import

用来导入其他类,同一个包下的类不需要导入。不在同一个类下的包需要手动去导入。
import+包名.*;
import语句在package之下,class语句之上。
Java.lang.*不需要手动引入,系统自动引入,Java语言的核心类。

访问控制权限

用来控制元素的访问范围。
有:public,protected,private
可以修饰类,方法,变量。
protected:同包下可以访问,不同包但是继承可以访问。
没有写:同包下可以访问,其他包不可以。
private:只能在当前类中访问。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-26 10:23:24  更:2021-09-26 10:24:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:26:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码