黑马程序员技术交流社区

标题: 关于private封装 [打印本页]

作者: 907888614    时间: 2015-4-14 01:09
标题: 关于private封装
  1. public class person1 {
  2.         private int age;
  3.         public void  setAge(int a){
  4.                 age=a;
  5.         }
  6.         public int getAge(){
  7.                 return age;
  8.         }
  9.         void speak(){
  10.                 System.out.println("age="+age);
  11.                
  12.         }
  13. }
  14. class person2{
  15.         public static void main(String[] agrs){
  16.                 person1 c=new person1();
  17.                 c.getAge(30);
  18.                 //c.setAge(20);
  19.                 c.speak();
  20.         }
  21. }       
复制代码
求朋友帮助:1.问题1代码c.getAge(30);报错,我按照毕老师视频照打还是错。求解答                     2.代码public int getAge(){}这是函数吗? 函数格式不是  修饰符+返回值类型+函数名(参数列表){ruturn   }。为什么这里没有static修饰?还                           是说这是两个类。括号内没有参数类型和参数变量。
谢谢大家了。



作者: 静心明德    时间: 2015-4-14 01:34
1.问题1代码c.getAge(30);报错,我按照毕老师视频照打还是错。求解答
看看这个方法:
public int getAge(){
               return age;
  }
是一个空参的返回值类型是int的函数,你在调用的时候却给它赋了一个int型的30,当然会报错了。

2.代码public int getAge(){}这是函数吗? 函数格式不是  修饰符+返回值类型+函数名(参数列表){ruturn   }。为什么这里没有static修饰?还是说这是两个类。括号内没有参数类型和参数变量。

public int getAge(){}是函数啊,也叫方法。
这个函数里的public 就是修饰符啊,int就是返回值类型,getAge就是函数名,没有参数的,返回值是int型。之所以没有用static 修饰,是因为属性age没有被static修饰。
相信你明白了。
作者: WYKings    时间: 2015-4-14 10:38
楼上已经回答的很清楚了,建议楼主学习一下堆、栈内存的区别,static关键字主要用于分配堆内存空间,用于全局。
作者: 火七君    时间: 2015-4-14 10:46
getAge();方法因为括号中没有参数列表,空参方法,不用传递参数。
而且你读出这个英文意思是   getAge();  得到年龄     setAge(20);这个才是设置年龄的方法
我建议你基础还是多巩固巩固吧,个人感觉基础不好的话进黑马容易跟不上课。
作者: 机智的黄图哥    时间: 2015-4-14 10:50
set用于个头成员函数赋值  get用于获取成员属性   你不能在getAge上对其属性赋值   需要使用setAge
作者: 907888614    时间: 2015-4-14 14:31
静心明德 发表于 2015-4-14 01:34
1.问题1代码c.getAge(30);报错,我按照毕老师视频照打还是错。求解答
看看这个方法:
public int getAge() ...

后面那个要怎么改一下呢
作者: 静心明德    时间: 2015-4-14 14:46
907888614 发表于 2015-4-14 14:31
后面那个要怎么改一下呢

如果想要用类名调用,就加static,Person1.getAge()就ok了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2