Java 关于类的专题

文章目录

    • 1. Object 类
    • 2. 内部类
    • 3. 覆写 Object 类的 equals 方法
    • 4. 接口对象实例化
    • 5. this() 调用无参构造方法
    • 6. static 属性所有对象共享一份
    • 7. static 方法不能调用 非static 属性
    • 8. 静态代码块
    • 9. final 关键字
    • 10. instanceof 关键字

1. Object 类

所有的类都是继承于 Object 类,该类有一个 toString() 方法,打印对象时调用

class Person4 extends Object{ // extends Object 可省略String name = "Michael";int age = 18;
}class test4{public static void main(String[] args){Person4 p = new Person4();System.out.println(p);}
}

输出:

Person4@1b6d3586
  • 覆写 toString()
class Person4 extends Object{ // extends Object 可省略String name = "Michael";int age = 18;public String toString(){return "I am " + name + ", age " + age;}
}class test4{public static void main(String[] args){Person4 p = new Person4();System.out.println(p);}
}

输出:

I am Michael, age 18

2. 内部类

  • 内部类可以调用外部类的数据和方法
  • 部类无法访问内部类的数据和方法
  • static 内部类 不能访问 非static 外部类的成员
class Outer{int score = 95;void inst(){Inner in = new Inner();in.display();}class Inner{void display(){System.out.println("score: " + score);}}
}
class Outer{int score = 95;class Inner{String innerName = "Michael";//外部类无法访问void display(){System.out.println("score: " + score);}}
}
class test4{public static void main(String[] args){Outer out = new Outer();Outer.Inner in = out.new Inner();// 用外部类的对象 去实例化一个 内部类的对象in.display();}
}

3. 覆写 Object 类的 equals 方法

class Person4 extends Object{ // extends Object 可省略private String name = "Michael";private int age = 18;public Person4(String name, int age){this.name = name;this.age = age;}
}class test4{public static void main(String[] args){Person4 p1 = new Person4("Michael", 18);Person4 p2 = new Person4("Michael", 18);System.out.println(p1.equals(p2) ? "eq" : "not eq");// not eq , 不覆写 equals , 不对劲,内容一样的.}
}
class Person4 extends Object{ // extends Object 可省略private String name = "Michael";private int age = 18;public Person4(String name, int age){this.name = name;this.age = age;}// 覆写父类 Object 的 equalspublic boolean equals(Object o){boolean eq = true;Person4 p1 = this;if(o instanceof Person4){Person4 p2 = (Person4) o;eq = (p1.name==p2.name && p1.age==p2.age);}elseeq = false;return eq;}
}class test4{public static void main(String[] args){Person4 p1 = new Person4("Michael", 18);Person4 p2 = new Person4("Michael", 18);System.out.println(p1.equals(p2) ? "eq" : "not eq");// eq }
}

4. 接口对象实例化

  • 接口不能直接实例化,可以通过其子类进行实例化,抽象类也一样
//接口对象实例化
interface Usb{public void start();public void stop();
}class MoveDisk implements Usb
{public void start(){System.out.println("MoveDisk start...");}public void stop(){System.out.println("MoveDisk stop...");}
}
class Mp3 implements Usb
{public void start(){System.out.println("Mp3 start...");}public void stop(){System.out.println("Mp3 stop...");}
}class Computer{public void work(Usb u){u.start();u.stop();}
}
new Computer().work(new MoveDisk());
new Computer().work(new Mp3());输出:
MoveDisk start...
MoveDisk stop...
Mp3 start...
Mp3 stop...

5. this() 调用无参构造方法

只能在构造函数中使用,且放在第一句

6. static 属性所有对象共享一份

7. static 方法不能调用 非static 属性

8. 静态代码块

  • 最先执行(且先于静态方法),static { ... } 只会被执行一次,经常用来类属性初始化

9. final 关键字

  • final 标记的类,不能被继承
  • final 标记的方法,不能被子类覆写
  • final 标记的变量,常量,一次赋值,不能修改

10. instanceof 关键字

  • 对象 instanceof 类(或接口),返回 boolean

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pythonmain是什么意思_Python中if __name__ == __main__详细解释

想必很多初次接触python都会见到这样一个语句,if __name__ "__main__": 那么这个语句到底是做什么用的呢?在解释之前,首先要声明的是,不管你是多么小白,你一定要知道的是: 1.python文…

java操作redis的操作_Java操作redis简单示例

第一:安装Redis首先我们要安装Redis,就像我们操作数据库一样,在操作之前肯定要先创建好数据库的环境。Redis的下载可以百度一下,或者打开下面的下载链接:https://github.com/MSOpenTech/redis也可以从我的百度网盘下载…

myeclipse启动报JVM terminated. Exit code=1

报错信息如图: 解决办法: 删除当前workspaces下文件夹,路径为:%Workspaces%/.metadata/.plugins/org.eclipse.core.runtime转载于:https://www.cnblogs.com/tancp/p/4102866.html

Java 常用类库

文章目录1. String、StringBuffer2. 基本数据类3. System 类4. Runtime 类5. Date、Calendar、DateFormat 类6. Math、Random 类7. hashCode() 方法8. 对象克隆1. String、StringBuffer public class testString {public static void main(String [] args){String s "Mi…

git如何选择性合并_小姐姐用 10 张动图,教会你 Git 命令使用

优质文章,第一时间送达!来源:机器之心git merge、git rebase、git reset、git revert、git fetch、git pull、git reflog……你知道这些 git 命令执行的究竟是什么任务吗?如果你还有些分不清楚,那千万不能错过这篇文章…

传智播客java测试题_传智播客Java基础综合测试题

传智播客Java基础综合测试题传智播客Java基础综合测试题第一关1.动手完成 Java 开发包的安装,并设置环境变量 Path 。2.编写一个程序,要求程序运行后在屏幕上输出:***************************This is my first java program!***************…

为何Spark更高效?

learn from 从0开始学大数据(极客时间) Spark 的计算阶段 Hadoop MapReduce 简单粗暴地根据 shuffle 将大数据计算分成 Map 和 Reduce 两个阶段,然后就算完事了。 而 Spark 更细腻一点,将前一个的 Reduce 和后一个的 Map 连接起来…

iphone个系列尺寸_最值得入手的4款iPhone,都是内行人的最爱,拿出去有面子

现如今手机市场里最受大众欢迎的手机应该就是iPhone了,虽然iPhone的价格都普遍偏高,但是大家依然还是非常青睐于它,主要是因为iPhone的配置和性能确实是比其他机型要好,搭载的A系列仿生芯片和iOS系统都提升了它的性能,…

protocol(协议) 和 delegate(委托)也叫(代理)---辨析

protocol和delegate完全不是一回事。协议(protocol),(名词)要求。就是使用了这个协议后就要按照这个协议来办事,协议要求实现的方法就一定要实现。委托(delegate),(动词)助手。顾名思义就是委托…

redis 计数 java_redission计数器实现,redisTemplate计数器

在redission 2.9.0版本之前是有BUG,在实现下面代码时,第一次是成功的,但是在第二次就会失败:RedissonClient client;//client参考别的demoRMapCache mapCache client.getMapCache("nameSpace");mapCache.putIfAbsent(&…

天池 在线编程 能否转换

文章目录1. 题目2. 解题1. 题目 给两个字符串 S 和 T, 判断 S 能不能通过删除一些字母(包括0个)变成 T. 样例1 输入: S "lintcode" 和 T "lint" 输出: true样例2 输入: S "lintcode" 和 T "ide" 输出: true样例3 输入: S "…

java对象持久化技术_Java对象持久化技术Hibernate 一

Hibernate是Java应用和关系数据库之间的桥梁,它负责Java对象和关系数据之间的映射。Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供了面向对象的数据访问API。在Java应用中使用Hibernate包含以下步骤。(1)创建Hibernate的配置文件。(2)创建…

SQL获取变量类型以及变量最大长度

DECLARE Temp nvarchar(1050) SELECT CAST(SQL_VARIANT_PROPERTY(Temp, BaseType) AS VARCHAR(50))SELECT CAST(SQL_VARIANT_PROPERTY(Temp, MaxLength) AS VARCHAR(50))转载于:https://www.cnblogs.com/lhmlyx2723356/p/4105322.html

java 析构函数_C++与Java的区别(一)

一,前言网上经常看到编程语言之争,大伙儿皈依到不同门派,各自怀抱信仰,时不时还发生点儿“冲突”。这其中,C和Java的优劣,十多年前就常吵的火热。然而时代在进步,技术在发展,满街早已…

天池 在线编程 圣杯咒语

文章目录1. 题目2. 解题1. 题目 一段英文中同时出现大小写的字母中最大的那一个,现在给你一段英文,你能把这个字母找出来嘛? ps:一定存在答案 英文长度不会超过100000 样例 1: 输入:"aAbb" 输出&#xf…

java jtextarea字体_java – 更改JTextArea中不同行的字体

我想在JTextArea中添加不同的字体行,但是最后一个字体似乎覆盖了另一个字体.请帮忙…import java.awt.*;import javax.swing.*;SuppressWarnings("serial")public class test extends JFrame {private static JTextArea referenceTextArea new JTextArea(10, 10);pr…

crawler_java_数据平台结构

大数据生态架构 转载于:https://www.cnblogs.com/cphmvp/p/4105674.html

天池 在线编程 卡牌游戏(01背包)

文章目录1. 题目2. 解题1. 题目 你跟你的朋友在玩一个卡牌游戏,总共有 n 张牌。 每张牌的成本为 cost[i] 并且可以对对手造成 damage[i] 的伤害。 你总共有 totalMoney 元并且需要造成至少 totalDamage 的伤害才能获胜。 每张牌只能使用一次,判断你是否…

bean validation校验方法参数_Spring Boot 之使用 validation 验证参数

前言文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206/six-finger种一棵树最好的时间是十年前,其次是现在我知道很多人不玩qq了,但是怀旧一下,欢迎加入六脉神剑Java菜鸟学习群,群聊号码:54968483…

原 IOS之NSValue整理

原 IOS之NSValue整理 发表于2年前(2013-02-28 23:02) 阅读(1974) | 评论(0) 5人收藏此文章, 我要收藏赞3IOS NSValue值对象(value object)概念在面向对象的编程语言中,值对象本质上是数据元素的的对象包装器&#xf…