希望大家能帮我好好分析讲解一下概念问题,谢谢大家了。我刚学java很想学,可是感觉不知道为什么老是学不好,欢迎大家讲解一下学习java的方法。非常感谢大家,如果能有人愿意我想找位师傅,呵呵。private class drum {              //我想问一下这里为什么不能用private boolean topHat = true;
boolean snare = true;

void playTophat(){
System.out.println("ding ding da-ding");
}
void playSnare(){
System.out.println("bang bang ba-bang");
}
public static void main(String []args){
drum dm = new drum();

if(dm.snare = true){
dm.playSnare();
}
dm.snare = false;
dm.playSnare();
dm.playTophat();
}
}
我想问一下private定义的意思不是说在类内都可以用吗?为什么这样写不行?最好能讲讲原理,谢谢大家。下面这样写也错,为什么呢?这个注释估计会有很多错误,欢迎大家拍砖。
private class VolcanoRobot {
//创建三个实例变量
String status;
int speed;
float temperatrue;
//第一个实例方法,可以在VolcanoRobot对象上调用
void checkTemperatrue(){

if(temperatrue < 600){
status = "teturning home";
speed = 5;
}
}

void showAttributes(){
System.out.println("Status  " + status);
System.out.println("Speed=" + speed);
System.out.println("Temperatrue:" + temperatrue);
}
//static意味着main()是一个类方法
public static void main (String []arguments){
//实例化一个类,创建引用.每个对象是某个类的一个实例
VolcanoRobot dante = new VolcanoRobot(); 

dante.status = "exploring";
dante.speed = 2;
dante.temperatrue = 510;
dante.showAttributes();  //调用引用(实例)的方法
System.out.println("Increasing speed to 3.");
dante.speed = 3;
dante.showAttributes();
System.out.println("Changing temperature to 670");
dante.temperatrue = 670;

dante.showAttributes(); //类方法适用于类的所有对象

System.out.println("Checking the temperature");
dante.checkTemperatrue();
dante.showAttributes(); }}

解决方案 »

  1.   

    检查公共类名跟文件名是否一致;
    private 修饰的类表示为在同一类中可以使用;
      

  2.   

    (一)封装。
    1、什么是封装?
    它有两层含意:a、类中的所有属性与方法不可分割。
         b、相当于一个壳,它可以保护我们的属性和方法。
    比如有一个用户类:
    public class User{
    public int uid;
    public String uname;
    public int age;//要求用户的年龄必须大于等于18
    }public class Test3{
    public static void main(String[] args){
    User u=new User();
    u.age=-2;//不会报错,造成了程序的逻辑错误 }
    }
    2、如何来封装呢?
    步骤:
    a、将所有属性的修饰语句改为private。   private:私有的,只有在当前类中可访问
    public class User{
    private int uid;
    private String uname;
    private int age;//要求用户的年龄必须大于等于18
    }b、在当前的类中加入公有的设值方法。
    public class User{
    private int uid;
    private String uname;
    private int age;//要求用户的年龄必须大于等于18 public int getAge(){
    return age;
    }

    public void setAge(int a){
    if(a>=18){
    this.age=a;
    }else{
    System.out.println("年龄不正确,设置为默认值18");
    this.age=18;
    }
    }

    }c、在生成用户对象时使用get与set方法进行操作。
      

  3.   

    四楼说的正确,private是一个访问权限的设置,用它修饰的类的成员变量外部类不能访问
      

  4.   

    额,就是你写了一个程序,肯定要有一个public类啊,这样JVM才能调用这个类啊,
    也就是说main函数要放在一个public类中另外,Java还规定一个.java文件中必须有一个public类,且文件名与类名相同至于封装,4楼已经讲得很清楚了
      

  5.   


    10楼。您好,您说的这些都是java规定的吗?那我写2个类一个用private  一个用public .可以吗? 我对java 的jvm不了解
      

  6.   


    10楼。您好,您说的这些都是java规定的吗?那我写2个类一个用private 一个用public .可以吗? 我对java 的jvm不了解
      

  7.   

    说的不一定对
    一个可运行的类只能有一个public类
    public类名与文件名相同
    至于private和public只是修饰的范围不同
    我觉得刚开始一般用不上pribate