希望大家能帮我好好分析讲解一下概念问题,谢谢大家了。我刚学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(); }}
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(); }}
private 修饰的类表示为在同一类中可以使用;
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方法进行操作。
也就是说main函数要放在一个public类中另外,Java还规定一个.java文件中必须有一个public类,且文件名与类名相同至于封装,4楼已经讲得很清楚了
10楼。您好,您说的这些都是java规定的吗?那我写2个类一个用private 一个用public .可以吗? 我对java 的jvm不了解
10楼。您好,您说的这些都是java规定的吗?那我写2个类一个用private 一个用public .可以吗? 我对java 的jvm不了解
一个可运行的类只能有一个public类
public类名与文件名相同
至于private和public只是修饰的范围不同
我觉得刚开始一般用不上pribate