我知道之前已经提出 过这样的问题,但我仍然觉得答案对我来说太模糊了(而且,有些/大多数初学者).
我一直在努力教自己更广泛的编程概念,而不是程序和基本的OOP.我理解OOP的具体概念(你创建一个具有数据(成员)和函数(方法)的类,然后在运行时实例化该类以实际执行某些事情,那种事情).
我认为我可以处理类的内容(在编译时以类似的方式创建实例的设计蓝图).但如果是这样的话,对象是什么?我也知道在基于原型的语言中,这可能会使事情变得更糟,但也许这就是为什么在我的脑海中需要明确区分对象和实例.
除此之外,我还在努力解决"对象"和"实例"的概念.我读过的很多资源(包括SO的答案)都说它们大致相同,而且区别在于语义.其他人说两者之间存在真正的概念差异.
SO的专家能帮助初学者在OOP世界中有一个"啊哈"的时刻吗?
再次感谢.
注意:这不是家庭作业,我不上学 - 但是,我认为这有助于那些正在寻找家庭作业帮助的人.
这是类名称空间中的静态println函数吗?outSystem
namespace System {
class out {
static println ...
}
我怎么能解释这个名字?在JRE中定义了这个函数?在java.lang.System/ java.lang.Object?
类是单个单元中方法和变量的绑定.
对象是类的实例.
这些是编程书籍中的类和对象的定义.我的朋友说一个类是一个对象的蓝图.对象是蓝图的真实"事物".他举了一个例子:如果公司是一个类,那么INFOSYS,CTS和TCS等就是对象.每当我想到类和对象时,这些定义都会让我感到困惑.如果channel是一个类,那么该类的对象是什么?如果水是一个阶级,什么是阶级的对象?你能澄清一下吗?
我试图改造一个对象.但是在运行时,对象类仍然是派生类.
Derived drv = new Derived();
Base base = (Base) drv;
System.out.println("Class : " + base.getClass());
//prints -> Class : class packagename.Derived
Run Code Online (Sandbox Code Playgroud)
那么为什么类属性没有改变?