java类和对象问题
传值总是从main这个实现类传给对象所代表的类中的方法和变量是么?
如果实例化后就能对相关类的方法和变量进行传值,那get,set访问器的意义又在哪里?
请详细回答,若回答满意会追加分值,谢谢 展开
2、main()中实例化的对象,你要给这个对象传值赋值、执行操作等等,都任你意愿。
3、所谓传值,有getter()和setter()方法来做。不一定什么都要依靠main()来做,任何方法都可以给别的方法传值,main()其实你把他当作一个普通方法即可,只是它是程序入口,单独运行类时,必须要的。
不知道你有没有学习过猫类、狗类的java类示例。getter()和setter()就是为了给那个对象中的设置或获取属性。
比如一个猫类
public class Cat()
{
private String name;//猫的名字
/** 为猫设置名字 */
public void setName(String name){
this.name=name;
}
/** 获取猫的名字 */
public String getName(){
return name;
}
/** 让它执行什么事 */
public void doSomeThing(){
System.out.println(name+",come on!");
}
}
/** 测试类 这个类,不是叫实现类,而是程序的入口,没有main()就没有入口*/
public class Test()
{
public static void main(String[] orgs){
Cat cat=new Cat();
cat.setName('小猫猫');
cat.doSomeThing();
}
}
唉,没有被采纳,白手打这么多。楼主基础概念不清楚啊~
分四个方面回答:
main方法: main方法不是什么实现类,而只是一个程序的入库。比如一个人要进入一个屋子,门就是入口。 main方法就是一个程序运行时的入口。
类和对象: 类是一类东西的描述。比如说学生类 Student。对象是这类东西的具体实现。比如说张三是个学生,那张三就是Student这个类的对象。java写法 Student 张三 = new Student();
传值: 传值跟main没关系,跟具体的对象有关系。比如说学生类有年龄(age),性别(sex),姓名(name)三个属性。那么传值的方式就是 Student s = new Student(); s.setAge(23); s.setSex("男"); s.setName("张三");
get,set方法: 对一个对象进行赋值有两种方法。比如说上面例子要对学生年龄进行赋值 a方法:s.age =23 ;(age为public的属性)b方法: s.setAge(23); 一般java推荐b方法。具体原因就是封装。因为有时候一个对象的属性不希望外部直接调用或者操作(private属性),比如说要给一个账户类赋密码值,程序要经过加密处理后才把值赋给密码这个属性而不是直接用 account.password = “123”; 这种方式。
2014-08-07 · 知道合伙人数码行家
您好,提问者:
Java编程中,main是赋予特殊含义的一个可执行的方法,是一个主程序的入口。
关于set、get来讲,我们都知道一般是公共(public)的,即对外提供而已,例如:
public class Person{
private String name; //私有
private Person(String name){ //私有的构造方法
this.name = name;
}
public Person(){} //空的,让别人new实例用
public String getName(){
//这句话的意思是,私有的有参构造方法只能在本类访问
//如果name不等于null就返回一个默认的姓名,否则返回已有姓名
return this.name == null ? new Person("defualt").getName():name;
}
}
str.charAt() 得到的是str的某个字符,而不是String 这个类的,这一点你要搞明白. 再者,我们在定义类的时候,一般的成员变量都是私有的用private,这样子,你在实例化对象以后直接用User.username是没有用的.所以我们要用一个public 的 gettersetter方法 用来给变量赋值和取值.
2014-08-07