iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >初始化与清理 & 访问权限 & 组合与继承 & final、static
  • 172
分享到

初始化与清理 & 访问权限 & 组合与继承 & final、static

2023-06-02 23:06:07 172人浏览 薄情痞子
摘要

                   一.内容简介1.初始化与清理2.访问权限3.继承概要4.final,static5.练习一二.内容梳理

                   一.内容简介
1.初始化与清理
2.访问权限
3.继承概要
4.final,static
5.练习一

二.内容梳理
1.初始化与清理

1构造函数
构造函数:用来初始化成员变量的函数,没有返回值,函数名与类名一致。
默认构造器:没有参数的构造函数。类中如果没有构造器,编译器会自动创建默认构造器。
构造函数的嵌套:可以在构造器中调用被重载的其他构造器,用this(parameter)调用。且只可以调用一个并放在起始处。
继承中的构造函数:构造函数不会被继承,子类的构造函数自动调用父类的默认构造函数,如果父类没有默认构造函数,则手动调用父类的构造函数。super(parameter).

2重载
重载:方法名相同,参数列表不同。与返回值无关,返回值无法区分,如果返回值不同,方法名相同,参数列表相同,编译出错。
重载的参数匹配:对应类型对应匹配。如果匹配不到:(常数与char)当做int用来匹配,其他的数据类型逐渐提升数据类型来匹配。
重写的返回类型必须一样或协变,否则编译错误。

3初始化
局部变量不初始化会报错,成员变量有默认的初始化。
初始化顺序:静态优于非静态,父类优先子类,变量优先于代码块优先于构造器。

  • 初始化与清理 & 访问权限 & 组合与继承 & final、static

静态数据的初始化:静态数据属于类,只占用一份存储区域,有标准的初值。静态数据的初始化时间是(静态数据被访问或对象被创建时)

4清理
垃圾回收机制只释放new的内存
类内定义finalize()方法,当垃圾回收发生时,finalize()被调用

(5)可变参数列表
例子:

点击(此处)折叠或打开

  1. static void printArray(Object[] args){

  2. }

  3. printArray(1, 2, 3);

  4. printArray((Object[])new integer[](1, 2, 3));

——构造函数使用可变参数列表会与默认构造函数弄混

访问权限

1

类内

包内(子类与非子类)

包外子类

包外非子类

Public

√    

Protected

×

默认

×

×

private

×

×

×

2修饰类只有public和默认
3.继承概要
extends指明继承关系,未说明隐式继承Object.
向上转型:子类可以作为实参传入父类作为形参的方法。
this.value先找自己的成员,找不到去父类找的.
构造方法不会被继承

4.final,static
1.1final强调不变。static强调跟随类。
1.2final
类不希望被继承
方法不希望被重写
变量不希望被改变
final修饰的值不一定是常量还是变量,DJ反编译看。

1.3static
静态变量
静态方法:不能访问非静态成员方法和非静态成员变量
静态代码块
static不允许修饰局部变量;



练习一
(1)需求
——汽车销售人员销售汽车,款式有凯越,君威
——汽车与款式和编号,款式编号不可修改
——汽车销售人员有姓名
——销售人员按车型及数量销售

(2)代码
AutoType.java

点击(此处)折叠或打开

  1. package biz;

  2. public class AutoType {

  3.     public static final String Kai_YUE = "凯越";

  4.     public static final String JUB_WEI = "君威";

  5. }



Auto.java

点击(此处)折叠或打开

  1. package biz;

  2. public class Auto {

  3.     private String autoType;    // 款式

  4.     private String autoNumber;    // 编号

  5.     private boolean isSelled;

  6.     Auto(String autoType, String autoNumber){

  7.         this.autoType = autoType;

  8.         this.autoNumber = autoNumber;

  9.         this.isSelled = false;    // 默认未销售

  10.     }

  11.     public String getAutoType() {

  12.         return autoType;

  13.     }

  14.     public String getAutoNumber() {

  15.         return autoNumber;

  16.     }

  17.     public boolean isSelled() {

  18.         return isSelled;

  19.     }

  20.     public void setSelled(boolean isSelled) {

  21.         this.isSelled = isSelled;

  22.     }

  23.     

  24.     

  25. }



seller.java

点击(此处)折叠或打开

  1. package biz;

  2. public class Seller {

  3.     private String name;

  4.     

  5.     Seller(String name){

  6.         this.name = name;

  7.     }

  8.     

  9.     public void sell(Auto[] autos, String autoType,int num){

  10. //        if(auto == null || autoType == null || num < 0) {

  11. //            

  12. //        }

  13.         int selledNum = 0;

  14.         for(Auto curAuto: autos) {

  15.             int i = 0;

  16.             i++;

  17.             if(!curAuto.isSelled() && curAuto.getAutoType().equals(autoType)

  18.                     &&selledNum < num) {

  19.                 curAuto.setSelled(true);

  20.                 System.out.println("准备售出-"+ curAuto.getAutoType() + "-"

  21.                         +curAuto.getAutoNumber());

  22.                 selledNum++;

  23.             }

  24.         }

  25.         if(selledNum < num) {

  26.             System.out.println("库存不够。" + "只可售出" + selledNum + "辆" + autoType);

  27.         }

  28.         

  29.     }

  30.     public String getName() {

  31.         return name;

  32.     }

  33.     public void setName(String name) {

  34.         this.name = name;

  35.     }

  36.     public static void main(String[] args) {

  37.         Seller s1 = new Seller("小明");

  38.         Auto auto1 = new Auto(AutoType.JUB_WEI, "001");

  39.         Auto auto2 = new Auto(AutoType.JUB_WEI, "002");

  40.         Auto[] autos = new Auto[2]; 

  41.         autos[] = auto1;

  42.         autos[1] = auto2;

  43.         s1.sell(autos, AutoType.JUB_WEI, 3);

  44.     }

  45.     

  46. }


三.总结与随笔
(1)entity层:只有属性没有方法,主要用于数据跨层传输
(2)同一块作用域,局部变量优先于成员变量。
(3)char 类型可以' + ', ' - '
(4)方法传参:基本类型传值,函数内改变参数值对函数外无影响。引用类型传引用,函数内改变参数值对函数外有影响。
(5)删掉set方法,private修饰的成员变量只读

--结束END--

本文标题: 初始化与清理 & 访问权限 & 组合与继承 & final、static

本文链接: https://www.lsjlt.com/news/231691.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c++中if elseif使用规则
    c++ 中 if-else if 语句的使用规则为:语法:if (条件1) { // 执行代码块 1} else if (条件 2) { // 执行代码块 2}// ...else ...
    99+
    2024-05-14
    c++
  • c++中的继承怎么写
    继承是一种允许类从现有类派生并访问其成员的强大机制。在 c++ 中,继承类型包括:单继承:一个子类从一个基类继承。多继承:一个子类从多个基类继承。层次继承:多个子类从同一个基类继承。多层...
    99+
    2024-05-14
    c++
  • c++中如何使用类和对象掌握目标
    在 c++ 中创建类和对象:使用 class 关键字定义类,包含数据成员和方法。使用对象名称和类名称创建对象。访问权限包括:公有、受保护和私有。数据成员是类的变量,每个对象拥有自己的副本...
    99+
    2024-05-14
    c++
  • c++中优先级是什么意思
    c++ 中的优先级规则:优先级高的操作符先执行,相同优先级的从左到右执行,括号可改变执行顺序。操作符优先级表包含从最高到最低的优先级列表,其中赋值运算符具有最低优先级。通过了解优先级,可...
    99+
    2024-05-14
    c++
  • c++中a+是什么意思
    c++ 中的 a+ 运算符表示自增运算符,用于将变量递增 1 并将结果存储在同一变量中。语法为 a++,用法包括循环和计数器。它可与后置递增运算符 ++a 交换使用,后者在表达式求值后递...
    99+
    2024-05-14
    c++
  • c++中a.b什么意思
    c++kquote>“a.b”表示对象“a”的成员“b”,用于访问对象成员,可用“对象名.成员名”的语法。它还可以用于访问嵌套成员,如“对象名.嵌套成员名.成员名”的语法。 c++...
    99+
    2024-05-14
    c++
  • C++ 并发编程库的优缺点
    c++++ 提供了多种并发编程库,满足不同场景下的需求。线程库 (std::thread) 易于使用但开销大;异步库 (std::async) 可异步执行任务,但 api 复杂;协程库 ...
    99+
    2024-05-14
    c++ 并发编程
  • 如何在 Golang 中备份数据库?
    在 golang 中备份数据库对于保护数据至关重要。可以使用标准库中的 database/sql 包,或第三方包如 github.com/go-sql-driver/mysql。具体步骤...
    99+
    2024-05-14
    golang 数据库备份 mysql git 标准库
  • 如何在 Golang 中优雅地处理错误?
    在 go 中,优雅处理错误包括:使用 error 类型;使用 errors 包函数和类型;自定义错误类型;遵循错误处理模式,包括关闭资源、检查错误、打印错误信息和处理或返回错误。 在 ...
    99+
    2024-05-14
    golang 错误处理
  • 如何构建 Golang RESTful API,并使用中间件进行身份验证?
    本文介绍了如何构建 golang restful api。首先,通过导入必要的库、定义数据模型和创建路由来构建 restful api。其次,使用 go-chi/chigot 和 go-...
    99+
    2024-05-14
    golang git
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作