java为什么设置不了类 为什么JAVA创建新类 创建不了
大家好,关于java为什么设置不了类很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于为什么JAVA创建新类 创建不了的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
java运行显示“找不到或无法加载主类”!
该如何解决呢?解决办法如下:
1.由于是在运行阶段出现的问题,那么可能是环境变量配置不当的问题,即可能是classpath路径配置错误,而导致.class文件无法加载。那么此时你可以检查是否配置好classpath路径,一般来说classpath路径配置如下:
.;%java_home%\lib;%java_home%\lib\tools.jar;(注意前面的.以及;缺一不可)
其中.表示当前路径,;表示分隔符。
2.如果你试过了很多次,classpath也配置对了,依旧出现这个错误,注意你使用的测试代码,是否在某一个包名的下面;
比如说如下测试代码:
在文件所在的当前目录下,运行javac TestPlusPlus.java编译成功,生成TestPlusPlus.class文件,这个时
候,你用javaTestPlusPlus想运行程序,总会出现”找不到或无法加载主类“的错误。这个时候要注意,
之所以找不到,是因为TestPlusPlus在HelloWorld包名的下面。
解决办法:
1.去掉”packageHelloWorld;“重新用javac编译TestPlusPlus.java,再运行javaTestPlusPlus就可以了。
2.新建一个包名一样的文件夹,在本例中,为建立一个HelloWorld的文件夹,把TestPlusPlus.java文件移到该目录下。
然后在HelloWorld文件夹的平级下,打开DOS命令窗口,运行javacHelloWorld/TestPlusPlus.java编译程序,
运行javaHelloWorld/TestPlusPlus(或者javaHelloWorld.TestPlusPlus也可以),则可以运行含有包名的java程序。
注意:包名不要含有'.'(点),''(空格)等特殊符号,这样的话命令行无法判断包名与java程序名的分割点在哪里,
从而还是找到或者无法加载主类。
原理说明:
java程序运行class文件,对于有包名的类,java把包名当成文件夹处理."包名+类名"相当于"文件夹目录+类名"来寻找类。
为什么JAVA创建新类 创建不了
你遇到的问题简单地说就是:你没有为新的类创建个文件夹【eclipse中的包其实就是个专用的文件夹】。
你是用的什么工具?如果是netbean之类的话,新建的类需要放在文件夹(需要自己动手创建一个在项目中)中;如果是eclipse之类的工具的话就要方便些,需要把新的类放在包中。回答完毕。
java 封装性 为什么要把类的属性设置成私有的
我们来谈谈封装的思想:
封装就是将属性私有化,提供公有的方法访问私有的属性。
*实现封装的步骤:
(1)修改属性的可见性来限制对属性的访问。
(2)为每个属性创建一对赋值方法和取值方法,用于对这些属性的访问。
(3)在赋值和取值方法中,加入对属性的存取限制。
**为了实现良好的封装性,我们通常将类的成员变量声明为private,再通过
public的方法来对这个变量进行访问。对一个变量的操作,一般都有读取和
赋值操作,我们分别定义两个方法来实现这两种操作,一个是getxxx()(xxx
表示要访问的成员变量的名字),用来读取这个成员变量操作,另外一个是
setxxx()用来对这个成员变量赋值。
**如果外面的程序可以随意修改一个类的成员变量,会造成不可预料的程序错误,
就象一个人的身高,不能被外部随意修改,只能通过各种摄取营养的方法去修
改这个属性。
public
class
accpteacher{
private
string
name;
private
int
age;
public
string
getname(){
return
name;
}
public
void
setname(string
name){
this.name
=
name;
}
public
int
getage(){
return
name;
}
public
void
setname(string
age){
if(age<22){
system.out.println("年龄不符合,太小!");
}else{
this.age
=
age;
}
}
}
****封装的优点:
(1)隐藏类的实现细节;
(2)让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制
逻辑,限制对属性的不合理操作;
(3)便于修改,增强代码的可维护性;
看我这个你应该明白为什么要将属性私有化。
java为什么不能用protected修饰类,
default权限为同一个包中的任何类可以访问该类。protected的权限为同一个包中的其他任何类以及任何子类(无论子类是在哪个包中声明的)可以访问该类。貌似看上去protected比default多了一个子类权限,但是这个权限前提是有子类。对于protected权限的类,根本无法在非该类所在包中创建子类。所以实际上,对于顶级类来说,protected修饰跟default是一样的。反而相比之下,protected修饰顶级类就显得没有任何意义了。
OK,本文到此结束,希望对大家有所帮助。