Java中的getClass()方法

本文深入探讨了Java中getClass()方法的使用,包括普通类、内部类及匿名内部类对象调用此方法的行为和结果。通过代码示例,详细解释了getName()和getCanonicalName()方法的区别。

Java中的getClass()方法

2018年03月09日 10:40:16 LittleLawson 阅读数:862

版权声明:如若转载,请联系作者。 https://blog.youkuaiyun.com/liu16659/article/details/79494201

Java中的getClass()方法

  • 当使用getClass()方法的对象是普通类对象时,getclass()方法返回当前对象的类的信息。代码如下
public class Test
{
    public static void main(String args[]){
        Test t = new Test();
        System.out.println(t.getClass().getName()=="Test");
        System.out.println(t.getClass().getCanonicalName());//获取权威的类名
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

getName()方法,返回类名。 
getCanonicalName()返回权威的类名。比如说,如果该类是一个匿名类,则返回输出null;如果该类是根据java语法创建出的类,则返回输出类名。

  • 当使用getClass()方法的对象是内部类的对象时:
public class Test
{
    public void Test(){
        System.out.println("This is constructor of test!");
    }
    public static void main(String args[]){
        Test t = new Test();
        Person p = t.new Person();//新建一个内部类对象
        System.out.println(t.getClass().getCanonicalName());//获取权威的类名
        System.out.println(p.getClass().getCanonicalName());
    }
    //内部类
        class Person {
        public void play(String sportName) {
            System.out.println("I'am LittleLawson,I like play" + sportName);
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

输出结果如下:

Test
Test.Person
  • 1
  • 2
  • 当使用getClass()方法的对象是匿名内部类的对象时
abstract class People{
    public void eat(String food){}
}
public class Test
{
    public static void main(String args[]){
        //匿名内部类
        People peo = new People(){
            @Override
            public void eat(String food) {
                System.out.println("I'm eating "+ food);
            }
        };
        peo.eat("beat");
        peo.getClass();//不输出任何类名
        peo.getClass().getCanonicalName();//不输出任何信息(为null)
    }
}
<think>嗯,用户现在问的是如何在Windows关闭防火墙。首先,我需要回忆一下Windows防火墙的设置位置,通常是在控制面板或者设置应用里。不过不同的Windows版本可能路径不太一样,比如Windows 10和11可能更倾向于使用设置应用,而旧版本可能还在控制面板。我需要确保覆盖到不同版本的情况。 用户之前的问题是关于海思设备连接失败的,现在突然问关闭防火墙,可能是因为他们尝试解决网络连接问题,而之前建议过检查防火墙。所以用户可能是在按照之前的建议操作,需要关闭防火墙来排除问题。这时候我需要给出详细的步骤,同时也要提醒用户关闭防火墙的风险,毕竟关闭防火墙会让电脑更容易受到攻击。 接下来,我需要分步骤说明如何关闭防火墙。首先想到的是通过控制面板:打开控制面板,找到系统安全,然后进入Windows Defender 防火墙,左侧有启用或关闭的选项。另外,在较新的Windows版本中,也可以通过设置应用里的更新与安全,找到Windows 安全,然后防火墙和网络保护,逐个关闭各个网络的防火墙。 还要注意用户可能使用的是英文系统还是中文系统,但用户要求用中文回答,所以应该用中文的菜单名称。同时,可能需要提到不同网络类型(域、专用、公用网络)都需要关闭,或者根据用户的需求选择关闭特定网络的防火墙。 另外,用户可能不太熟悉操作步骤,所以需要详细说明每一步,比如如何进入控制面板,点击哪些选项。可能需要用序号或分步骤来写,确保清晰易懂。同时,在最后要提醒用户,关闭防火墙后记得重新开启,或者建议他们通过添加例外规则而不是完全关闭防火墙,以保持系统安全。 还要考虑用户可能的权限问题,关闭防火墙可能需要管理员权限,所以要提示用户如果需要的话,使用管理员账户登录或者输入管理员密码。 最后,检查是否有其他方法,比如使用命令行或PowerShell命令来关闭防火墙,但考虑到普通用户可能不熟悉命令行,可能还是以图形界面操作为主。不过如果有必要,可以简要提及,但需要谨慎,因为误用命令可能会有风险。 总结一下,回答应该包括两种主要方法:控制面板和设置应用,步骤详细,用中文菜单项,提醒安全风险,并建议重新启用防火墙或设置例外。这样用户既能解决问题,又不会无意中降低系统安全性。</think>以下是关闭 **Windows 防火墙** 的详细步骤(适用于 Windows 10/11 及早期版本): --- ### **方法一:通过控制面板关闭** 1. **打开控制面板** - 按 `Win + R` 打开“运行”窗口,输入 `control` 后回车。 - 或直接在任务栏搜索“控制面板”并打开。 2. **进入防火墙设置** - 在控制面板中,选择 **“系统安全”** → **“Windows Defender 防火墙”**。 3. **关闭防火墙** - 点击左侧 **“启用或关闭 Windows Defender 防火墙”**。 - 根据需要关闭以下网络类型的防火墙(通常建议关闭所有): - **专用网络**(家庭或工作网络)→ 选择 **“关闭”** - **公用网络**(公共场所网络)→ 选择 **“关闭”** - 点击 **“确定”** 保存设置。 --- ### **方法二:通过设置应用关闭Windows 10/11)** 1. **打开设置** - 按 `Win + i` 打开“设置”,或点击开始菜单中的 **“设置”** 图标。 2. **进入安全中心** - 选择 **“更新和安全”**(Windows 10) 或 **“隐私和安全”**(Windows 11)。 - 点击 **“Windows 安全”** → **“防火墙和网络保护”**。 3. **关闭防火墙** - 依次进入每个网络配置文件(域网络、专用网络、公用网络)。 - 在每个配置文件中,将 **“Windows Defender 防火墙”** 开关设置为 **“关闭”**。 --- ### **方法三:通过命令提示符或 PowerShell(高级用户)** - **临时关闭防火墙**(需管理员权限): ```cmd netsh advfirewall set allprofiles state off ``` - **重新启用防火墙**: ```cmd netsh advfirewall set allprofiles state on ``` --- ### **注意事项** 1. **风险提示**: - 关闭防火墙会降低系统安全性,可能导致恶意软件入侵或网络攻击。建议仅在调试网络问题时临时关闭,完成后立即重新启用。 - 若需保留部分功能,可在防火墙中为特定程序 **添加例外规则**(如允许某个端口或应用通过)。 2. **企业环境限制**: - 若设备受企业组策略管理,可能需要管理员权限或联系 IT 部门操作。 3. **恢复默认设置**: - 在防火墙设置中选择 **“还原默认设置”**,可快速恢复安全配置。 --- ### **替代方案:仅允许特定程序通过** 如果关闭防火墙风险过高,可改为 **放行特定程序或端口**: 1. 进入防火墙设置 → **“允许应用或功能通过防火墙”**。 2. 点击 **“更改设置”** → 勾选需要放行的程序(如 PQTools)或手动添加端口规则。 --- 通过上述步骤,您可以根据需求灵活管理防火墙设置。建议优先使用例外规则而非完全关闭防火墙
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值