为什么后面的class不能输出啊,如果想要输出该怎么改呢


public class Hello{
    public static void main(String[]args){
        System.out.println("nothing" );
    }
}
class name{
    static void main(String[]args){
        System.out.println("陈玉松");
    }
}
class living{
    static void main(String[]args){
        System.out.println("四川成都");
    }
}
class belonging{
    static void main(String[]args){
        System.out.println("四川province");
    }
}
class gender{
    static void main(String[]args){
        System.out.println("male");
    }
}

只有 public static 修饰的main方法才是程序入口方法, 其他的都理解为 内部的静态方法

一个程序只能有一个主函数,也叫入口函数,程序启动就自动执行
你的public class是主类,里面的main是主函数
其他的函数需要你在main里调用
没人调用它怎么可能会走呢

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7585034
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:class占用内存问题
  • 除此之外, 这篇博客: 哈夫曼树制作压缩软件 【此后无良辰】中的 class类 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    class tree//haffman tree
    {
            public :
            int times;//hez
            char data;//data
            int code;//字符
            int code_len;//字符长度
            tree *left_tree,*right_tree;
            tree(){times=code=code_len=0;data=NULL;left_tree=right_tree=0;}
            ~tree()
            {
                    if(left_tree)
                    delete left_tree;
                    if(right_tree)
                    delete right_tree;
            }
            void preoeder(int,int);//先序遍历,生成haffman编码
    };
    
    class haffman
    {
            private:
            char first_name[100];//被压缩的名字(用来存路径)
            char final_name[100];//
            char code_name[100];//
            tree *bas[551];//基础字符编码树 
            tree *haff_root;//根节点
            int bas_len;//基础字符树个数
            char *buffer,*r;//缓冲区,读入文件内容
            int lenth;//读入内容长度
            int max_bu,bu;//最大缓冲区段基值,偏移量
            QString formulate;
            public :
            double origin_size,final_size;
            haffman()
            {
                    haff_root=NULL;
                    buffer = new char [10*1024*1024];//1m=1024kb 1kb=1024b;
                    r= new char [10*1021*1024];
                    memset(bas,0,sizeof(bas));
            }
            ~haffman()
            {
                    delete buffer;
                    delete r;
                    delete haff_root;
            }
            void read(QString s);
            void count();//计算字符出现频率
            void new_sort(tree *a[],int,int);//快排
            void make_haffman();//生成haffman树
            void wbit(int);//向缓冲区写入一个字节
            void zip();
            void write(QString);//写入文件缓冲区中的内容
            void savecode();//保存haffman编码和缓冲区大小,供解压用
            void readbuffer(QString);//读入压缩文件内容到缓冲区
            void readcode();//读取haffman编码和缓冲区大小,供解压用
            void unzip(QString);
    };
    

    具体的函数实现有注释 但值得一提的是
    缓冲区的数据可以写入被压缩的文件(这样就只会生成一个文件),也就是我们常用的压缩软件
    本文的将其独立出来为.code为了真实的计算压缩之后和压缩之前的之比
    (作业要求QAQ)
    在这里插入图片描述
    当然如果你有兴趣可以自己合并

  • 您还可以看一下 黄菊华老师的微信小程序样式开发入门课程中的 class类选择器小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    问题出在代码的最后,当创建Cat类的实例时,没有调用该实例的方法。因此,只输出了之前的狗的名字。

    要解决这个问题,只需要在创建Cat类的实例后,调用相应的方法即可。

    修改后的代码如下:

    class Dog:
        def __init__(self, name):
            self.name = name
    
        def bark(self):
            print("汪汪,我的名字是" + self.name)
    
    dog1 = Dog("旺财")
    dog1.bark()
    
    class Cat:
        def __init__(self, name):
            self.name = name
    
        def meow(self):
            print("喵喵,我的名字是" + self.name)
    
    cat1 = Cat("小白")
    cat1.meow()
    

    运行上面的代码,即可成功输出狗的名字和猫的名字。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^