189 8069 5689

JAVA入门基础知识系列006-创新互联

2022.12.13【有错误希望指正】 this关键字

理解:

专注于为中小企业提供网站设计、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业蒙城免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

​ 被哪个对象调用,this就指向哪个对象

注意事项和使用细节:

  • this关键字可以用来访问本类的属性、方法、构造器
  • this用于区分当前类的属性和局部变量(加了this前缀的就指向属性)
  • 访问成员的语法:this.方法名(参数列表);
  • 访问构造器语法:this(参数列表);只能在构造器中调用this访问另一个构造器,并且该条语句必须放在构造器中第一条
  • this不能在类定义的外部使用,只能在类中的方法使用,否则找不到this指向哪个对象。

题外知识:

  1. String转char*

    • string str = "hello";
      const char* p = str.data();//加const或者用char* p = (char*)str.data();的形式,c_str()方法也有同样的效果
    • string str = "world";
      char p[50];
      str.copy(p, 5, 0);//这里5代表复制几个字符,0代表复制的位置
      *(p + 5) = '\0';//手动添加结束符!!!
  2. char*转string

    • //直接赋值
      string s;
      char* p = "hello";
      s = p;
2022.12.21 包 包的本质

包的本质就是创建不同的文件夹来保存类文件

包的三大作用:
  • 区分相同名字的类
  • 当类很多时,可以很好的管理类【看java API文档】
  • 控制访问范围
包的使用规范
  1. package关键字,表示打包
  2. com.hspedu表示包名

举例:package com.hspedu

命名规范:一般是com.公司名.项目名.业务模块名

com.sina.crm.user//用户模块

com.sina.crm.order//订单模块

com.sina.crm.utils//工具类

常用的包

java.lang.* //jang包时基本包,默认引入,不需要再引入

java.util.* //系统提供的工具包,使用Scanner

java.net.* //网络包,网络开发

java.awt.* //做java界面开放,GUI

包的引入

import java.util.Scanner;//只会引入java.util包下的Scanner

import java.util.*;//会引入java.util包下面的所有类

**注意:**import只能放在package的下面,一个类中最多只有一个package,指示当前文件属于哪个包

访问修饰符
1访问级别访问控制修饰符同类同包子类不同包
2公开public
3受保护protected×
4默认没有修饰符××
5私有private×××
  • 使用注意事项
    1. 修饰符可以修饰类中属性,成员方法和类
    2. 只有默认和public才能修饰类
封装

定义:

封装(encapsulation)就是把抽象出的数据[属性]和对数据的操作[方法]封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作[方法]才能对数据进行操作。

好处:

  1. 隐藏实现细节
  2. 可以对数据进行验证,保证安全合理
实现步骤
  1. 将属性进行私有化private【不能直接修改属性】
  2. 提供一个公共的(public)set方法,用于对属性判断并赋值
  3. 提供一个公共的(public)get方法,用于获取属性的值
继承

介绍:

继承可以解决代码复用,当多个类存在相同 的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所以子类不需要重新定义这些属性和方法,只需要通过extends来声明继承父类即可。

继承的基本语法:

class 子类 extends 父类{}
  1. 子类会自动拥有父类定义的属性和方法
  2. 父类又叫超类、基类
  3. 子类又叫派生类

子类必须继承父类的构造器 ,完成父类初始化

当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类的构造器中用super去指定使用父类的哪个构造器完成对父类的初始化工作。

super必须放在构造器的第一行,所以不能和this()连用

java所有类都是Object类的子类,Object是所有类的基类

父类构造器的调用不限于直接父类,将一直往上追溯到Object类(顶级父类)

子类最多只能继承一个父类,单继承机制

方法重写/覆盖(override)

基本介绍:

子类中的一个方法和父类中一个方法的方法名,传入参数都一样,返回类型与父类同名方法返回类型一样或是其子类,则子类中的这个方法会覆盖父类中的方法。

注意事项:

子类方法重写不能缩小访问权限,可以扩大访问权限

名称发生范围方法名参数列表返回类型修饰符
重载本类必须一样类型、个数或者顺序至少有一个不同无要求无要求
重写父子类必须一样相同子类重写的方法返回类型和父类的类型一致或者是其子类子类方法不能缩小父类方法的访问范围
多态 面向对象的多态
  • 重要的几句话:
    1. 一个对象的编译类型和运行类型可以不一致
    2. 编译类型在定义对象时就确定了,不能改变
    3. 运行类型是可以变化的
    4. 编译类型看定义时 = 号的左边,运行内心看 = 号的右边

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文名称:JAVA入门基础知识系列006-创新互联
文章网址:http://cdxtjz.cn/article/shcdc.html

其他资讯