java中匿名类,Bean规范,全局变量
实现看见一个人,我们对它说hello
public class study01 {
public static void main(String[] args) {
Me me = new Me();
me.SayHello(new ZhangSan());
}
}
// 定义了一个抽象类;
abstract class Person {
public abstract String name();
}
class Me{
public void SayHello(Person Person){
System.out.println("你好" + Person.name());
}
}
class ZhangSan extends Person{
public String name(){
return "shangsan";
}
}
ps:上面这个代码主要是想说:类的名称并不重要;
我们只是想使用类中的方法;
如果这里我们还想给:王五,王六说你好;
是不是还要添加一个王五类,王六类;
这样太麻烦了。我们可以使用匿名类
匿名类的引入
在某些场景下,类的名称并不重要;我们只想使用类中的方法;
这个时候我们可以采用特殊语法;匿名类
public class study01 {
public static void main(String[] args) {
Me me = new Me();
// 这样我们就不需要再去写一个王六类,王七类了
me.SayHello(new Person(){
public String name(){
return "wamgliu";
}
});
}
}
// 定义了一个抽象类;
abstract class Person {
public abstract String name();
}
class Me{
public void SayHello(Person Person){
System.out.println("你好" + Person.name());
}
}
class ZhangSan extends Person{
public String name(){
return "shangsan";
}
}
接口可以通过类来实现,毕竟接口也是一种规范;
public class study01 {
public static void main(String[] args) {
// new Brid().fly();
new Fly(){
public void fly(){
System.out.println("使用飞行器飞行");
}
}.fly();
}
}
// 声明的是抽象接口
interface Fly {
// 这是一个抽象方法;因为接口中的方法是抽象方法
// 同时接口中定义的属性都是常量
public void fly();
}
class Brid implements Fly{
public void fly(){
System.out.println("开始飞行");
}
}
Bean的规范
Bean的规范要求:
1.类的要求必须是无参,公共的构造方法;
2.属性必须私有化,然后提供公共的get,set方法
Bean规范实现登录逻辑
ublic class study01 {
public static void main(String[] args) {
User user1 = new User();
// 给属性设置值
user1.setAccount("admin");
user1.setPassword("123");
// 调用登录方法
System.out.println(login(user1));
}
// 登录方法
public static Boolean login(User user){
if(user.getAccount()== "admin" && user.getPassword()=="123"){
return true;
}else {
return false;
}
}
}
// Bean规范
class User {
private String account;
private String password;
// 提供账号
public String getAccount(){
return account;
}
// 提供密码
public String getPassword(){
return password;
}
// 设置密码,因为没有返回值,所以我写上void
public void setPassword(String password){
this.password = password;
}
// 设置用户名;; 因为没有返回值,所以我写上void
public void setAccount(String account){
this.account = account;
}
}
如果属性和局部变量名称相同,如果访问是不加任何修饰符,优先访问局部变量;
public class study01 {
public static void main(String[] args) {
User u =new User();
u.test(); // 输出的是-lisi
}
}
class Person26 {}
class User extends Person26{
// 这是一个属性
public String name="wangwu";
public void test(){
// 这是一个局部变量
String name ="lisi";
System.out.println("名称:"+ name);
}
}
如果没有局部变量,访问的是属性
public class study01 {
public static void main(String[] args) {
User u =new User();
u.test(); // 输出的是-wangwu
}
}
class Person26 {}
class User extends Person26{
// 这是一个属性
public String name="wangwu";
public void test(){
// 如果没有局部变量,访问的是属性
// String name ="lisi";
System.out.println("名称:"+ name);
}
}
父类和子类有相同属性,优先访问子类属性,如果子类没有,然后访问父类属性
ublic class study01 {
public static void main(String[] args) {
User u = new User();
u.test(); // 输出的是-wangwu
}
}
class Person26 {
public String name="zhangsan";
}
class User extends Person26{
// 这是一个属性
public String name="wangwu";
public void test(){
System.out.println("名称:"+ name);
}
}
java中匿名类,Bean规范,全局变量的更多相关文章
- Java中匿名类的两种实现方式(转)
使用匿名内部类课使代码更加简洁.紧凑,模块化程度更高.内部类能够访问外部内的一切成员变量和方法,包括私有的,而实现接口或继承类做不到.然而这个不是我说的重点,我说的很简单,就是匿名内部类的两种实现方式 ...
- java中匿名类的讲解
匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写 但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实例1:不使用匿名内部类来实现抽象 ...
- java中匿名类的注意细节
abstract class Outer{ int num; public Outer(int x){ num = x; } public abstract void show1(); public ...
- Java通过匿名类来实现回调函数
在C语言中,函数名可以当做函数指针传递给形参从而实现回调 void f1() { printf("f1()\n"); } void f2() { printf("f2() ...
- Java程序设计基础笔记 • 【第7章 Java中的类和对象】
全部章节 >>>> 本章目录 7.1 理解类和对象 7.1.1 对象 7.1.2 抽象与类 7.1.3 类与对象的关系: 7.2 Java中的类和对象 7.2.1 类的定义 ...
- 【JAVA零基础入门系列】Day11 Java中的类和对象
今天要说的是Java中两个非常重要的概念--类和对象. 什么是类,什么又是对象呢?类是对特定集合的概括描述,比如,人,这个类,外观特征上,有名字,有年龄,能说话,能吃饭等等,这是我们作为人类的相同特征 ...
- 第四节:详细讲解Java中的类和面向对象思想
前言 大家好,给大家带来详细讲解Java中的类和面向对象思想的概述,希望你们喜欢 类和面向对象 在Java中怎样理解对象,创建对象和引用:什么是引用,对于基础学习的同学,要深入了解引用.示例:Stri ...
- Java中主类中定义方法加static和不加static的区别
Java中主类中定义方法加static和不加static的区别(前者可以省略类名直接在主方法调用(类名.方法),后者必须先实例化后用实例调用) 知识点:1.Getter and Setter 的应用 ...
- 细说java中的类
前言 最近在学习<java编程思想> 学到了内部类 类不就是class吗 天天用 还能讲出花来了不成... 其实不然,在java中,类的种类和使用方式多种多样,花样繁多.其中主要有 普通类 ...
- 基础知识(05) -- Java中的类
Java中的类 1.类的概念 2.类中的封装 3.对象的三大特征 4.对象状态 5.类与类之间的关系 ------------------------------------------------- ...
随机推荐
- Linux 文件删除空间没有释放问题
最近阿里云频频告警.磁盘使用率飙升90%以上.遂查看磁盘使用情况 df -h 发现使用率却是很高 之后,通过du -h --max-depth=1 / 查看哪个目录下占用的资源较多并进行删除 后来发现 ...
- Codeforces Round 960 (Div.2)
A 非常容易观察到性质,注意 Alice 为先手,发现当 \(a_{\max}\) 的个数为奇数时显然能 win,但如果 \(a_{\max}\) 的个数为偶数且有一个数具有奇数个可以作为跳板,那么也 ...
- http相关知识要点
1.TCP/IP协议分为哪几层?每一层主要作用是什么?为什么要分层? 应用层 传输层 网络层 数据链路层 2.HTTP请求有哪些方式? GET:用于从服务器获取资源.不会改变资源状态,无副作用,幂等. ...
- JDK 18 及以上使用标准输出流中文输出乱码问题
著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 链接:https://stazxr.cn/2024/12/05/JDK-18-以上使用标准输出流中文输出乱码问题/ 来源:終わり ...
- Fiddler抓包iOS手机配置全流程
前情 平时做移动移动端开必的时候经常需要抓包手机,用于接口请求跟踪,但iOS的抓包经常性的配不成功,经过踩过不少坑后终于知道了整个配置流程,此文记录Fiddler抓包iOS手机的配置流程. Step ...
- docker compose的安装
1,安装docker ### CentOS8 默认是会读取centos.org的mirrorlist的,所以一般来说是不需要配置镜像的. # step 1: 安装必要的一些系统工具 sudo yum ...
- mysql将公司数据随机挂在部门身上
1.创建示例数据 CREATE TABLE department_table ( company_code VARCHAR(10) COMMENT '公司编码', company_name VARCH ...
- .NET 8 中的 ASP.NET Core 指标与 Grafana 仪表板入门
.NET 8 中的 ASP.NET Core 指标与 Grafana 仪表板入门 原文地址:https://devblogs.microsoft.com/dotnet/introducing-aspn ...
- 配置 Forwarded Headers Middleware
来自微软的说明:Configure ASP.NET Core to work with proxy servers and load balancers | Microsoft Learn. 通过该中 ...
- shell 获取 目录名 当前目录名
Four ways to extract the current directory name By Sergio Gonzalez Duran on November 06, 2007 (9:00 ...