A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 夏夜猫 中级黑马   /  2013-8-22 21:16  /  3910 人查看  /  25 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 夏夜猫 于 2013-8-23 19:35 编辑

励志进入黑马,现阶段在传智播客上JAVA基础班的新手一名,诚心求解。

最近课面向对象快上完了,可是脑子里对很多东西的感觉似懂非懂,总是觉得单独分开讲,定义、格式、作用都能分得清楚,但是写在一个源代码里面,相互创建、调用后组成一个完整的部分,就懵了。

关于在一个源代码里定义多个类,然后根据需要创建对象,再相互引用最后达到完成题目要求的整个过程,总觉得不知道从哪里开始着手。

主要疑惑例如:
1、对象究竟是类里面的什么东西?可以出现在类中的哪些位置?什么时候需要创建?
2、类创建时会先创建一个带有main方法的类,然后根据题目的要求添加创建其他的类,这些类是并列关系么?(就是相互写在上下会不会影响程序编译和运行)
3、创建好需要的类以后,会在main方法以外的类中写出类的基本成员属性(例如class Person{ int age;  String name;}),但是之后的方法调用具体需要写在这个类中还是含有main函数的类中?为什么要写在那里?
4、写出的这些方法,什么时候需要写成员方法,什么时候需要写构建方法?具体写在哪里?

我自己能总结出来的就这些,也许其中会包含一些诸如“Java究竟是什么”这么空的搞笑问题,但是确实是我现在脑子里存在着的疑惑。上面也有一些问题是我课后复习看老师讲解习题后发下来的源代码,很多当时懂,但是再看就不知道哪对哪的了(调用关系)。

本来是想发帖球技术分的,但现在真怕自己跟不上学习进度,连基础都学不好,要技术分也没用,我本人是零基础来上课的,来上课前自学的部分只把老毕的helloworld给看完,因为想改变生活因为哥们的推荐和鼓励,告诉我只要努力就能成功。。

跪求大神能帮我找出梳理这些东西的方法{:soso_e183:}

评分

参与人数 2技术分 +3 收起 理由
滔哥 + 1
黄兴旺 + 2 多练练就行了。

查看全部评分

25 个回复

正序浏览
夏夜猫 发表于 2013-8-23 19:35
已经改过了,比较难找,第一次改,找了半天。

嗯..有什么不会的可以随时找我们版主...能帮到的基本上都能做到。
回复 使用道具 举报
黄兴旺 发表于 2013-8-23 16:49
亲  如果问题已解决请把类别改为已解决,谢谢。

已经改过了,比较难找,第一次改,找了半天。
回复 使用道具 举报
亲  如果问题已解决请把类别改为已解决,谢谢。
回复 使用道具 举报
Lop_adoule 发表于 2013-8-23 11:55
目测有可能  ...  你也是8.8的吧,

必须的么 。。。。不过我是菜鸟
回复 使用道具 举报
丶遇见另一个自 发表于 2013-8-22 22:12
你不会是八月八的同学吧。。。哈哈

目测有可能  ...  你也是8.8的吧,
回复 使用道具 举报
正在整理笔记阶段,不嫌弃的话移步我的博客:

http://blog.csdn.net/u010474440/article/details/9993063

刚好要总结到面向对象的部分。希望对你有所帮助

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1 很给力!

查看全部评分

回复 使用道具 举报
对于函数的调用你可以看成是许许多多的超链接,比方说一个网站,我预先编辑了N多页面,在java中可以看成是N多方法,网站上有导航,你点什么,╮(╯▽╰)╭他就出来相应的链接,这点什么,是看你的需求的,你需要什么就点什么,在java中,你预先创建了N多用得到的方法,封装起来,比方说丢到了一个文件夹里面,在另外一个地方你想用到某个方法了,你就调用相应的方法、类方法,需要参数就传入参数。
回复 使用道具 举报
本帖最后由 张晓辉 于 2013-8-22 23:40 编辑

对象就是模拟现实生活中的事物,现实事物有他本身的特性,在java中它是实实在在的实例,里面有许多方法和属性,比方说一个类就是一个对象,类中有属性,有方法。
每个程序都必须有个main方法,因为它是虚拟机运行它的入口,找不到他就无法运行。
关于构造函数,类中创建方法,static{}静态应用,你问什么时候创建,当然是应用需要什么就创建什么,这个你看完毕老师的“对象初始化过程”可能就好理解了。你创建了一个类(对象),过程依次是,
1-执行static{}代码块,对类进行初始化,
2-对类中的属性进行初始化,例:类中 int age  所谓初始化就是创建,赋予初始化值,这里为0
3-对类中的属性进行显示初始化,例如:String name=“xiaoming”,name先进行初始化结果为null然后进行显示初始化,结果为"xiaoming"
4-对构造代码块进行初始化例如:person类中  person(){}括号内科进行初始化设置//如果没有定义,person(){}隐藏,默认初始化,值为空。
5对对象对应的构造函数进行初始化,例如:类外部 定义类person p=new person(10);数据10会传入相应的构造函数person(int age);构造函数中有方法对age进行了赋值this.age=age;所以属性age进行了初始化变为10
综上,他们都有各自的特性-功能,也有相应的运行顺序,到底什么时候应该有,必须有,甚至构建其他应用的方法,这个要看具体需求,用到了我就一个创建,其实要使用关键还是要知道他们的功能,ok,person(){}能进行初始化,好!我需要初始化的时候就在里面定义数据,方法等。

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1 赞一个!

查看全部评分

回复 使用道具 举报
夏夜猫 发表于 2013-8-22 22:23
嗯嗯,老李的内存思考大法有时候跟不上,我回头也打算把老毕关于面向对象部分的视屏调出来啃一次看看能不 ...

额 你不会真是我同学吧你叫。。。
回复 使用道具 举报
丶遇见另一个自 发表于 2013-8-22 22:17
就拿毕老师最经典的例子来说吧   人就是一个类  但是具体到一个人就是一个对象  对象可以有很多的属性 对应 ...

嗯嗯,老李的内存思考大法有时候跟不上,我回头也打算把老毕关于面向对象部分的视屏调出来啃一次看看能不能帮助我理顺,谢了,但愿8月8所有同学如愿达成目标,加油{:soso_e130:}
回复 使用道具 举报
穿靴子的猫 发表于 2013-8-22 22:00
构造是实例化对象的入口 当你实例化的时候通过new关键字为什么比如Student stu=new Student();就可以n ...

O了,感觉跟又上了一遍课似的,跪谢了!
回复 使用道具 举报
一个铃,一颗珠 发表于 2013-8-22 21:49
mian函数是一个独立的函数,程序运行的时候就会找main函数,main函数也是类里面的一个函数,只是它很特别, ...

首先要谢谢你。
这样具体写出一个类,然后把每项的内容解释下确实对帮助我梳理知识很有用。
我还有些疑惑,可能是因为练习(敲)得少的原因吧,主要体现在课上老师一个源代码文件里面写出多个类,然后相互调用就会找不着北,回头我再研究下从开始创建到完成封装的步骤,尽量理顺
回复 使用道具 举报
就拿毕老师最经典的例子来说吧   人就是一个类  但是具体到一个人就是一个对象  对象可以有很多的属性 对应的就是类里面的成员变量。人可以做事情 可以通过写一个方法来定义他的功能,用的时候直接调用就行了、这就是成员方法。。main是主函数 是程序运行的入口。。。具体定义成员变量和成员方法就看你需不需要这个功能了 需要了就定义呗
回复 使用道具 举报
你不会是八月八的同学吧。。。哈哈
回复 使用道具 举报
夏夜猫 发表于 2013-8-22 21:53
构造方法的使用和理解还是有点难,成员方法清晰了 谢了

构造是实例化对象的入口 当你实例化的时候通过new关键字为什么比如Student stu=new Student();就可以new呢?后面的Student() 就是构造
但是我平时没有写这个方法为什么可以实例化对象呢?
这就是因为当你没有写的时候java会隐式存在一个无参构造 当你自己定义无参或者有参的构造方法的时候,java就不会给你隐式提供构造方法了所以如果我现在定义了一个有参的构造
public Student(String name,int age){
    this.name=name;
    this.age=age;
}却没有提供无参构造的时候 Student stu=new Student(); 是new不出对象的 会报错 因为你的构造带参数 会提示你参数个数不足必须这样才行
Student stu=new Student("张三",21);这样才可以
回复 使用道具 举报
夏夜猫 发表于 2013-8-22 21:50
想表达的意思应该是你说的第二种,大致了解方法调用过程了,回头我再多练练 ...

相关访问权限应该有学过吧 只要是公有的就可以互相之间调用 不管你有几个类 你需要这个类的东西 而这个类的东西也是公有的 你就可以用 但最终运行必须在main方法之中走 哪怕你写出一大串代码比如class Person()

     public String name;
     public int age;

    public void say(){
       System.out.print(name+"年龄 "+age);
   }

class Student(){
   Person p=new Person();
   p.name="张三";
   p.age=21;
   p.say();
}
class Test(){
    public static void main(String[] args){
         //嘛都没干
   }

这个程序依旧没有办法运行
回复 使用道具 举报
穿靴子的猫 发表于 2013-8-22 21:49
《4》先说构造方法 如果在你没有定义任何构造方法的时候 会隐式存在一个无参的构造方法 构造方法的用处就是 ...

构造方法的使用和理解还是有点难,成员方法清晰了 谢了{:soso_e183:}
回复 使用道具 举报
穿靴子的猫 发表于 2013-8-22 21:42
《3》语文不好翻译不大懂你说的  你是创建好了需要的类 然后要在别的类中写这个类的属性 还是说创建好了一 ...

想表达的意思应该是你说的第二种,大致了解方法调用过程了,回头我再多练练
回复 使用道具 举报
mian函数是一个独立的函数,程序运行的时候就会找main函数,main函数也是类里面的一个函数,只是它很特别,程序运行就会找它,它可以放到任何类。类就是class,类里放属性和方法,一个class类可被new成很多对象,调用类里的非静态方法需要用对象调用,对象是通过new class类出来的东西。
public class Person {
        int age = 1;String name ="abc";  //这个是类的成员。它的管的范围比局部变量大,大括号内都能管,离开大括号就管不了
        public void hello(){     //这是类的方法
                System.out.println("hello world!");
        }
        //mian函数,也叫方法是一个特别的方法,它不需要依赖任何类但是它必须放到一个类中,程序运行时就会找它
        public static void main(String[] args) {
                int age = 2;   //这个是局部变量 。它的范围也一样在大括号内
                Person person = new Person();  //new Person的对象
                person.hello();   //调用类里方法普通方法必须用new 对象来调用
                person.age = 3;  //操作类里变量,普通成员必须用new 对象来用。
        }
}

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马