首页 > 编程语言 >java基本内容

java基本内容

时间:2023-04-17 14:47:01浏览次数:42  
标签:基本 java 内部 super 子类 成员 内容 父类 方法

字面量

定义:数据在程序中的书写格式

分类

制表符:\t

 

无限循环

for(;;){
 System.out.println("");
}

while(true){
 System.out.println("");
}

do{
 System.out.println("");
}while(true);

跳转循环语句

continue:结束本次循环,继续下次循环。

break:结束整个循环。

 

方法基本内容

 

 

方法重载

内容:在一个类中,具有相同的方法名和不同形参的方法构成方法的重载

规则:1.方法名要相同

2.参数不同(个数、类型、参数排列顺序等)

3.返回类型可以相同

 

构造函数

1.构造函数名称必须与所属类名称相同

2.构造函数是方法,无返回数据(内容无return),也无前置void

3.构造函数所属类被创建对象初始化运行时,即使不调用构造函数,其也会同时运行

4.系统会自动给予一个默认的隐藏空白构造函数

 

this关键字

通过this关键字来调用当前对象的属性,方法以及构造器。同时在有参构造器中也是通过this来对全局属性进行赋值。

1.this关键字调用成员变量

可以通过this调用成员变量,解决了局部变量名称的冲突问题。

2.this关键字调用成员方法

可以在一个方法中调用本类中的另一个方法。

3.this关键字调用构造器

可以通过this关键字调用本类的构造器。

super关键字

super关键字可以访问父类的成员变量,成员方法和构造器

1.super关键字调用父类的成员变量

语法格式:

super.属性名;

2.super关键字调用父类的成员方法

super.方法名([参数1],[参数2]...);

3.super关键字调用父类的构造器

super([参数1],[参数2]...);

注意:

  • super调用构造器时必须方法构造器的首行位置。

  • this和super调用构造器不能同时出现。

  • super访问父类成员,父类没有该成员则向上查找(父类),直到找到为止,否则报错。

 

1、private:访问权限最低的访问控制符,被它修饰的变量只能访问本类的对象。 2、public:访问权限最高,不仅是本类,子类,本包,其他的包,都可以去访问它修饰的对象。

3、default:访问权限限制在本类以及本包内。

4、protected:访问的范围是本类,本包内,子类,但别的包不可以访问。

嵌套类

定义:类B存在于类A范围内,则类B是类A的“嵌套类”

嵌套类的种类有两种静态成员类非静态成员类。非静态成员类被称为内部类。

1.类B存在,类A必同时存在。B是A的成员类;A是B的外部类

2.类A存在,类B不一定存在。两者不是直属关系

 

成员类

1.创建子类新对象

MainClass M = new MainClass();
MainClass.SubClass S = M.new SubClass();

2.成员类可直接访问所属外部类中的变量,反之不可

 

内部类

定义:将一个类定义在一个类或者一个方法里面,这样的类称着内部类

目的:内部类主要解决Java不能多重继承的问题。

分类:

1.成员内部类:成员内部类可以访问外部类所有的属性和方法。但是外部类要访问成员内部类的属性和方法,必须要先实例化成员内部类。

注意: 成员内部类里面不能包含静态的属性和方法

2.静态内部类:静态内部类就是在成员内部类多加了一个 static 关键字。静态内部类只能访问外部类的静态成员变量和方法(包括私有静态)

3.匿名内部类:没有名字的类

当一个内部类需要继承或者实现,而且只使用一次的时候,可以考虑使用匿名内部类。调用的时候直接使用父类的无参构造,并重写父类方法。

4.局部内部类:局部内部类就是定义在代码块内的一个内部类。比如在方法里面定义一个内部类,就是局部内部类。

注意:局部内部类的作用范围仅仅就在它所在的代码块里。局部内部类不能被public ,protected,private以及static修饰,但是可以被final修饰。

 

抽象类(abstract)

1.抽象类不得用于产生新对象,但可以被子类继承,由子类产生新对象

2.抽象方法不得有内容程序代码(即 abstract int num(); )

3.继承的子类要重写抽象父类的抽象方法

4.若类中有某一个抽象方法,则该类即为抽象类,必须前置abstract

 

接口类(interface)

1.接口类中只允许有内部方法且内部方法只有名称(无内容代码)

例:

Interface a{
 public void f();
}

2.一个类可同时实现多个接口类

3.implements和extends可同时使用

 

final

1.final放在类(Class)前时,该类不能被继承

2.final放在方法前时,该方法不能被覆盖

3。final放在变量前时,该变量只能初始化一次,即常量

 

多态

1.定义:多态是指不同的子类在继承父类后分别都重写覆盖了父类的方法,即父类同一个方法,在继承的子类中表现出不同的形式。

2.多态存在的三个必要条件

  1. 继承或实现:在多态中必须存在有继承或实现关系的子类和父类

  2. 方法的重写:子类对父类中的某些方法进行重新定义(重写,使用@Override注解进行重写)

  3. 基类引用指向派生类对象,即父类引用指向子类对象,父类类型:指子类对象继承的父类类型,或实现的父接口类型

3.多态的格式

  • 父类类型 变量名 = new 子类类型();

  • 然后通过 变量名.方法名()调用在子类中重写的方法

  • *多态体现为父类引用变量可以指向子类对象:*定义了一个父类类型的引用,指向新建的子类类型的对象,由于子类是继承他的父类的,所以父类类型的引用是可以指向子类类型的对象的

4.多态中的成员特点 例: 此处举例Animal是父类,Dog是子类

  • Animal dog = new Dog(); //Animal是引用类型,Dog是实际类型

  • System.out.println(dog.age) //dog的引用类型是Animal,所以取到的是父类Animal中的值,说白了dog是属于Animal类,Animal中变量的值是多少就通过对象就取得多少

标签:基本,java,内部,super,子类,成员,内容,父类,方法
From: https://www.cnblogs.com/fyy01/p/17325788.html

相关文章

  • java 命名推荐
    一、Java中的命名规范好的命名能体现出代码的特征,含义或者是用途,让阅读者可以根据名称的含义快速厘清程序的脉络。不同语言中采用的命名形式大相径庭,Java中常用到的命名形式共有三种,既首字母大写的UpperCamelCase,首字母小写的lowerCamelCase以及全部大写的并用下划线分割单词的UP......
  • python s12 day13 JavaScript、Dom和jQuery
    1.JavaScriptJavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理。1、JavaScript代码存在形式<!--方式一--><scripttype"text/javascript"src="JS文件"></script>......
  • 在线客服系统对接第三方搜索接口,将发访客消息GET请求指定的url,并将响应内容返回给访客
    为了扩展默认的自动回复机器人功能,特意在后台新加了一个webhook。那就是当填入webhook地址以后,会把访客的消息内容GET拼接请求到webhook的网址后面,这样就把信息转发到了该接口。该接口,拿到访客消息,自行编写搜索逻辑(例如对接elk,自行对接gpt),把响应的内容返回来。访客端直接展示......
  • Java 4种校验注解(值校验、范围校验、长度校验、格式校验)
    1Maven依赖<!--第一种方式导入校验依赖--><dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>2.0.1.Final</version></dependency><!--第二种方式导入校验......
  • Java SpringBoot 7z 压缩、解压
    JavaSpringBoot7z压缩、解压cmd7z文件压缩7z压缩测试添加依赖<dependency><groupId>org.apache.commons</groupId><artifactId>commons-compress</artifactId><version>1.12</version></dependency><dependency......
  • Java开发笔记13(树的结构修改记录)
    1.Controller:/***区域树生成*/@GetMapping("/list")privateResultregionTree(){Stationstation=getStation(getUser());StringstationCode=station.getStationTelecode();List<NewTreeVo>tree=stationInfRelaService.regionTree(stat......
  • Java中线程的常用操作-后台线程、自定义线程工厂ThreadFactpry、join加入一个线程、线
    场景Java中Thread类的常用API以及使用示例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/126596884上面讲了Thread的常用API,下面记录下线程的一些常用操作。注:博客:https://blog.csdn.net/badao_liumang_qizhi实现后台线程后台线程,是指运行时在后台提供的一......
  • 盘点国内前端npm CDN替代方案,基本上可以替代unpkg、jsdelivr
    收集一波常见的加速NPM包的CDN,发现有些还是挺好用的,用来做博客或者网站加载NPM使用还是可以的。经典老牌的CDN加速unpkg.comcdn.jsdelivr.netfastly.jsdelivr.net使用方法:直接进官网,搜NPM包名使用。缺点:有时候不是很稳定,而且国内有些地方没法访问,jsdelivr曾经被用来结合......
  • 深度学习的基本原理和常用框架介绍
    深度学习是一种基于人工神经网络的机器学习方法,它可以从大量的数据中学习抽象和复杂的特征,从而实现各种智能任务,如图像识别、自然语言处理、语音识别等。深度学习的基本原理是利用多层的神经网络结构,通过前向传播和反向传播的算法,不断调整网络中的参数,使得网络的输出能够逼近或优......
  • [软件人生]IT168年会的一点感受——简评专题的内容和说实话的流氓
    应老熊的邀请去参加了2008年1月12日和13日的精英年会,年会上让我对it168/itpub/ixpub有了更多的了解。期间认识了几个新朋友,同时有了一些新的想法和观感:1、 it168/itpub/ixpub的技术方面似乎在数据库上比较集中,其关注的热烈程度明显高于其他几个专题(软件开发、信息化等)的讨论内容。......