会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133885个问题

public class User3 {
    int id;        //id
    String name;   //账户名
    String pwd;   //密码
    static String company; //公司名称
    static {
        System.out.println("执行类的初始化工作");
        company = "北京尚学堂";
        printCompany();
    }  
    public static void printCompany(){
        System.out.println(company);
    }  
    public static void main(String[] args) {
        User3  u3 = new User3();
    }
}


问题1   我记得前面视频好像说过一个程序里只能有一个public定义的类啊。为什么这个程序里有三个public?难道是类里面可以用public 来修饰方法?

------------------------------------------------------------------------------------------------------

/**
 * 测试static关键字的用法
 * @author 高淇
 *
 */
public class User2 {
    int id; // id
    String name; // 账户名
    String pwd; // 密码
     
    static String company = "北京尚学堂"; // 公司名称
     
     
    public User2(int id, String name) {
        this.id = id;
        this.name = name;
    }
     
    public void login() {
        printCompany();
        System.out.println(company); 
        System.out.println("登录:" + name);
    }
     
    public static void printCompany() {
//         login();//调用非静态成员,编译就会报错
        System.out.println(company);
    }
     
    public static void main(String[] args) {
        User2 u = new User2(101, "高小七");
        User2.printCompany();
        User2.company = "北京阿里爷爷";
        User2.printCompany();
    }
}

问题二   为什么这个User修饰的类定义了一个 u 对象后 是

User2.printCompany();
        User2.company = "北京阿里爷爷";
        User2.printCompany();

我觉得应该用 u吧,就像这样:(PS:难道是因为静态方法可以直接用类名进行调用?)

u.printCompany();
        u.company = "北京阿里爷爷";
        u.printCompany();


JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 37636楼
Python 全系列/第一阶段:AI驱动的Python编程/Python入门(动画版) 37638楼
JAVA 全系列/第八阶段:Linux入门到实战/Linux(旧) 37640楼
JAVA 全系列/(旧的隐藏)第七阶段:JAVA 高级技术/Linux 37641楼

class Employee:
    
    __obj_flag = True
    def __init__(self,name,salary,id):
        self.name = name
        self._salary = salary
        self.id = id

    def __add__(self, other):
        if isinstance(other,Employee):
            return self._salary+other._salary
        else:
            return "同类对象,不能相加"

    @property
    def salary(self):
        return self._salary

    @salary.setter
    def salary(self, salary):
        if 1000 < salary < 50000:
            self._salary = salary
        else:
            print("工资范围为1000-50000")

    def s_id(self):
        g_id = 1000
        if self.id == " ":
            if Employee.__obj_flag:
                self.id = 1000
                Employee.__obj_flag = False
                return self.id
            else:
                g_id += 1
                self.id = g_id
                return self.id
        else:
            return self.id


    def s_name(self,name):
        pass


test1 = Employee("一",2000," ")
test1.s_id()
test2 = Employee("二",3000," ")
test2.s_id()
              #验证id自增和薪资相加
print("新增对象id分别为{0},{1}".format(test1.id,test2.id))
print("{0}和{1}的薪资和为{2}".format(test1.name,test2.name,test1+test2))
              #验证薪资是否符合要求
test3 = Employee("三",2000000," ")
test4 = Employee("四",200033," ")
print("{0}和{1}的薪资和为{2}".format(test3.name,test4.name,test3+test4))

[object Object]
老师为什么我输入工资为200000还是可以相加,没有报"工资范围为1000-50000"


Python 全系列/第一阶段:AI驱动的Python编程/面向对象 37644楼
JAVA 全系列/第七阶段:项目管理与SSM框架/Spring6旧 37645楼
JAVA 全系列/(旧的隐藏)第十阶段:spring全家桶(SpringData)/Spring Data 37648楼
JAVA 全系列/第二十一阶段:租房网(Spring Cloud最新架构)/Livegoods第二天 37650楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637