java中的面向对象是怎么体现的?新手刚学java,怎么感觉和C语言处理方法很相似啊?

时间:2022-08-18 15:26:36
java中的面向对象是怎么体现的?新手刚学java,怎么感觉和C语言处理方法很相似啊?

11 个解决方案

#1


栈内存中的引用指向堆内存中的对象,和C语言的“栈内存中的指针指向堆内存中的结构体”是一致的。

#2



1、怎么样理解JAVA中的面向对象编程 

首先先给讲清楚一个概念,什么叫面向对象,这和以前的面向过程有什么不同吗?想必刚上大学学习计算机第一种编程语言是C语言,大家都知道,C语言是面向过程的编程语言。面向过程的语言是一系列依次执行的指令,所以早期的BASIC,C都是面向过程的语言。

JAVA面向对象的语言与面向过程的语言有何不同啦?面向对象编程模仿了现实在的物体组合在一起的方式,用这种开发风格,可以创建创出更可靠更容易理解,可重用度更高的程序。

具体来讲,它把现实中的实体叫做对象,对象由更多更小的对象组成,下面我们举个例子。

水果包括苹果、葡萄、西瓜、香蕉等组成。我们把苹果、葡萄等这些个体就可以称为对象,而他们都属于水果,我们把水果就可称为类。类就对一类事物的抽象,把它们的共性抽象出来。类是创建对象的模板,由类创建的对象,就算是不相同,也有相似之处。

苹果、葡萄、西瓜、香蕉的共性是它们都有味道、大小、重量、颜色、形状。我们把它们的共性抽象出来,构成水果类,然后用这个类创建的对象,针对具体的对象我们只需要把父类没有的属性列出来。

当然苹果还可以细分为红富士、青苹果、红香蕉等更小的对象,他们属性又会不同,然后我们设计高效的类层次,不仅可以节省代码,其扩展性,可维护性,容易理解性都很好。当需要修改属性时,只需要修改父类的性属和方法,而无需动子类。

#3


引用 楼主 shenlei190810 的回复:
java中的面向对象是怎么体现的?新手刚学java,怎么感觉和C语言处理方法很相似啊?

慢慢来就会知道了
这是因为你是在用面向对象的语言
但是做的还是面向结构化的编程,就本能的以为java和C语言的处理方式
是相同的。楼主尝试去实现一个计算器(面向对象方式的)

#4


哦,你在用面向对象的语言JAVA,做着面向过程的编程.

#5


引用 4 楼 kiritor 的回复:
哦,你在用面向对象的语言JAVA,做着面向过程的编程.
正解啊

#6


引用 3 楼 kiritor 的回复:
Quote: 引用 楼主 shenlei190810 的回复:

java中的面向对象是怎么体现的?新手刚学java,怎么感觉和C语言处理方法很相似啊?

慢慢来就会知道了
这是因为你是在用面向对象的语言
但是做的还是面向结构化的编程,就本能的以为java和C语言的处理方式
是相同的。楼主尝试去实现一个计算器(面向对象方式的)

实现计算器为时过早吧?lz应该还没学到Swing,StringBuffer、Stack、Math库等等API应该也没学到。

#7


引用 6 楼 SmallYamateh 的回复:
Quote: 引用 3 楼 kiritor 的回复:

Quote: 引用 楼主 shenlei190810 的回复:

java中的面向对象是怎么体现的?新手刚学java,怎么感觉和C语言处理方法很相似啊?

慢慢来就会知道了
这是因为你是在用面向对象的语言
但是做的还是面向结构化的编程,就本能的以为java和C语言的处理方式
是相同的。楼主尝试去实现一个计算器(面向对象方式的)

实现计算器为时过早吧?lz应该还没学到Swing,StringBuffer、Stack、Math库等等API应该也没学到。

无关乎界面,简单的+、-、*、/

#8


引用 7 楼 kiritor 的回复:
Quote: 引用 6 楼 SmallYamateh 的回复:

Quote: 引用 3 楼 kiritor 的回复:

Quote: 引用 楼主 shenlei190810 的回复:

java中的面向对象是怎么体现的?新手刚学java,怎么感觉和C语言处理方法很相似啊?

慢慢来就会知道了
这是因为你是在用面向对象的语言
但是做的还是面向结构化的编程,就本能的以为java和C语言的处理方式
是相同的。楼主尝试去实现一个计算器(面向对象方式的)

实现计算器为时过早吧?lz应该还没学到Swing,StringBuffer、Stack、Math库等等API应该也没学到。

无关乎界面,简单的+、-、*、/
   你好,我刚才试着用面向对象的方法分析了一个案例,比如分析复旦大学那个投毒学生的行为。我们可以先确定人具备人类的基本特征,比如群居生活;然后人类又具备灵长类的五根手指,接着是哺乳动物的乳汁喂养,动物的囊胚发育阶段;因此分析一组人群的行为,可以先从基本的生物做起,再逐渐向上到达人类所特有的行为:强大的大脑,变态的人格。所以说面向对象就是将我们分析的时候将所要研究的对象先不断向下本质化,编程的时候再反过来逐渐向上升华。 
        

      但是你提到的做一个计算器,我想请你帮忙分析一下具体怎么体现面向对象的。谢谢

#9


我的面向对象的理解是,一个值为一个对象,一个方法为一个对象,一个类为一个对象,一种封装为一种对象,我现在要用的就是编写这些对象,使用这些对象。

不知道是不是错的,我也很模糊、。。。。

#10


import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;

import javax.swing.*;

public class tests extends JFrame {

public   void showBorderayout(){

Container mycontainer=getContentPane();
    BorderLayout layout =new BorderLayout();
    mycontainer.setLayout(layout);
    JPanel p1=new JPanel();
    JPanel p2=new JPanel();
p1.setLayout(new GridLayout(4,3));
p2.setLayout(layout);

for (int i=1;i<10;i++)
p1.add(new JButton (""+i));
    p1.add(new JButton (""+0));
    p1.add(new JButton ("start"));
    p1.add(new JButton ("stop"));

    p2.add(p1,BorderLayout.CENTER);

   p2.add(new JTextField("Time to be displayed"), BorderLayout.NORTH);

  mycontainer.add(p2,BorderLayout.EAST);


   mycontainer.add(new JButton("Food to be placed here"),BorderLayout.CENTER);



}  
/*    mycontainer.add(new JButton("CENTRAL"),BorderLayout.CENTER);
    mycontainer.add(new JButton("WEST"),BorderLayout.WEST);
    mycontainer.add(new JButton("EAST"),BorderLayout.EAST);
    mycontainer.add(new JButton("NORTH"),BorderLayout.NORTH);
    mycontainer.add(new JButton("SOUTH"),BorderLayout.SOUTH);
}
*/


public static void main(String[] args){


tests mytest=new tests();
mytest.showBorderayout();
mytest.setSize(400,250);
mytest.setVisible(true);
mytest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mytest.setLocation(200,200);

}
}




求大家帮忙看看这是哪儿的问题,我在书上基本上是原封不动抄下来的;但是编译出现了问题;出现如下情况:由于我是新手实在是没积分了,所以才在这个帖子上接着问问题的
    这个的用法的意义是:现在面板p1上画一个计算器的方格,再将这个面板贴在面板p2上,最后将二者一起贴到容器上;我自己感觉好像就是在这一步上出了问题——我屏蔽这一行是可以调试通过的。。。








at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)

at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)



#11


引用 1 楼 SmallYamateh 的回复:
栈内存中的引用指向堆内存中的对象,和C语言的“栈内存中的指针指向堆内存中的结构体”是一致的。


我觉得你首先要理解什么是封装和抽象,当能理解封装和抽象后,在理解什么事继承。这样对面向对象就有比较深刻的理解了。有区别于面向过程。

#1


栈内存中的引用指向堆内存中的对象,和C语言的“栈内存中的指针指向堆内存中的结构体”是一致的。

#2



1、怎么样理解JAVA中的面向对象编程 

首先先给讲清楚一个概念,什么叫面向对象,这和以前的面向过程有什么不同吗?想必刚上大学学习计算机第一种编程语言是C语言,大家都知道,C语言是面向过程的编程语言。面向过程的语言是一系列依次执行的指令,所以早期的BASIC,C都是面向过程的语言。

JAVA面向对象的语言与面向过程的语言有何不同啦?面向对象编程模仿了现实在的物体组合在一起的方式,用这种开发风格,可以创建创出更可靠更容易理解,可重用度更高的程序。

具体来讲,它把现实中的实体叫做对象,对象由更多更小的对象组成,下面我们举个例子。

水果包括苹果、葡萄、西瓜、香蕉等组成。我们把苹果、葡萄等这些个体就可以称为对象,而他们都属于水果,我们把水果就可称为类。类就对一类事物的抽象,把它们的共性抽象出来。类是创建对象的模板,由类创建的对象,就算是不相同,也有相似之处。

苹果、葡萄、西瓜、香蕉的共性是它们都有味道、大小、重量、颜色、形状。我们把它们的共性抽象出来,构成水果类,然后用这个类创建的对象,针对具体的对象我们只需要把父类没有的属性列出来。

当然苹果还可以细分为红富士、青苹果、红香蕉等更小的对象,他们属性又会不同,然后我们设计高效的类层次,不仅可以节省代码,其扩展性,可维护性,容易理解性都很好。当需要修改属性时,只需要修改父类的性属和方法,而无需动子类。

#3


引用 楼主 shenlei190810 的回复:
java中的面向对象是怎么体现的?新手刚学java,怎么感觉和C语言处理方法很相似啊?

慢慢来就会知道了
这是因为你是在用面向对象的语言
但是做的还是面向结构化的编程,就本能的以为java和C语言的处理方式
是相同的。楼主尝试去实现一个计算器(面向对象方式的)

#4


哦,你在用面向对象的语言JAVA,做着面向过程的编程.

#5


引用 4 楼 kiritor 的回复:
哦,你在用面向对象的语言JAVA,做着面向过程的编程.
正解啊

#6


引用 3 楼 kiritor 的回复:
Quote: 引用 楼主 shenlei190810 的回复:

java中的面向对象是怎么体现的?新手刚学java,怎么感觉和C语言处理方法很相似啊?

慢慢来就会知道了
这是因为你是在用面向对象的语言
但是做的还是面向结构化的编程,就本能的以为java和C语言的处理方式
是相同的。楼主尝试去实现一个计算器(面向对象方式的)

实现计算器为时过早吧?lz应该还没学到Swing,StringBuffer、Stack、Math库等等API应该也没学到。

#7


引用 6 楼 SmallYamateh 的回复:
Quote: 引用 3 楼 kiritor 的回复:

Quote: 引用 楼主 shenlei190810 的回复:

java中的面向对象是怎么体现的?新手刚学java,怎么感觉和C语言处理方法很相似啊?

慢慢来就会知道了
这是因为你是在用面向对象的语言
但是做的还是面向结构化的编程,就本能的以为java和C语言的处理方式
是相同的。楼主尝试去实现一个计算器(面向对象方式的)

实现计算器为时过早吧?lz应该还没学到Swing,StringBuffer、Stack、Math库等等API应该也没学到。

无关乎界面,简单的+、-、*、/

#8


引用 7 楼 kiritor 的回复:
Quote: 引用 6 楼 SmallYamateh 的回复:

Quote: 引用 3 楼 kiritor 的回复:

Quote: 引用 楼主 shenlei190810 的回复:

java中的面向对象是怎么体现的?新手刚学java,怎么感觉和C语言处理方法很相似啊?

慢慢来就会知道了
这是因为你是在用面向对象的语言
但是做的还是面向结构化的编程,就本能的以为java和C语言的处理方式
是相同的。楼主尝试去实现一个计算器(面向对象方式的)

实现计算器为时过早吧?lz应该还没学到Swing,StringBuffer、Stack、Math库等等API应该也没学到。

无关乎界面,简单的+、-、*、/
   你好,我刚才试着用面向对象的方法分析了一个案例,比如分析复旦大学那个投毒学生的行为。我们可以先确定人具备人类的基本特征,比如群居生活;然后人类又具备灵长类的五根手指,接着是哺乳动物的乳汁喂养,动物的囊胚发育阶段;因此分析一组人群的行为,可以先从基本的生物做起,再逐渐向上到达人类所特有的行为:强大的大脑,变态的人格。所以说面向对象就是将我们分析的时候将所要研究的对象先不断向下本质化,编程的时候再反过来逐渐向上升华。 
        

      但是你提到的做一个计算器,我想请你帮忙分析一下具体怎么体现面向对象的。谢谢

#9


我的面向对象的理解是,一个值为一个对象,一个方法为一个对象,一个类为一个对象,一种封装为一种对象,我现在要用的就是编写这些对象,使用这些对象。

不知道是不是错的,我也很模糊、。。。。

#10


import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;

import javax.swing.*;

public class tests extends JFrame {

public   void showBorderayout(){

Container mycontainer=getContentPane();
    BorderLayout layout =new BorderLayout();
    mycontainer.setLayout(layout);
    JPanel p1=new JPanel();
    JPanel p2=new JPanel();
p1.setLayout(new GridLayout(4,3));
p2.setLayout(layout);

for (int i=1;i<10;i++)
p1.add(new JButton (""+i));
    p1.add(new JButton (""+0));
    p1.add(new JButton ("start"));
    p1.add(new JButton ("stop"));

    p2.add(p1,BorderLayout.CENTER);

   p2.add(new JTextField("Time to be displayed"), BorderLayout.NORTH);

  mycontainer.add(p2,BorderLayout.EAST);


   mycontainer.add(new JButton("Food to be placed here"),BorderLayout.CENTER);



}  
/*    mycontainer.add(new JButton("CENTRAL"),BorderLayout.CENTER);
    mycontainer.add(new JButton("WEST"),BorderLayout.WEST);
    mycontainer.add(new JButton("EAST"),BorderLayout.EAST);
    mycontainer.add(new JButton("NORTH"),BorderLayout.NORTH);
    mycontainer.add(new JButton("SOUTH"),BorderLayout.SOUTH);
}
*/


public static void main(String[] args){


tests mytest=new tests();
mytest.showBorderayout();
mytest.setSize(400,250);
mytest.setVisible(true);
mytest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mytest.setLocation(200,200);

}
}




求大家帮忙看看这是哪儿的问题,我在书上基本上是原封不动抄下来的;但是编译出现了问题;出现如下情况:由于我是新手实在是没积分了,所以才在这个帖子上接着问问题的
    这个的用法的意义是:现在面板p1上画一个计算器的方格,再将这个面板贴在面板p2上,最后将二者一起贴到容器上;我自己感觉好像就是在这一步上出了问题——我屏蔽这一行是可以调试通过的。。。








at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)

at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)



#11


引用 1 楼 SmallYamateh 的回复:
栈内存中的引用指向堆内存中的对象,和C语言的“栈内存中的指针指向堆内存中的结构体”是一致的。


我觉得你首先要理解什么是封装和抽象,当能理解封装和抽象后,在理解什么事继承。这样对面向对象就有比较深刻的理解了。有区别于面向过程。