如何在java中使用另一个包中的类?

您所在的位置:网站首页 java类中调用另一个类的方法怎么弄 如何在java中使用另一个包中的类?

如何在java中使用另一个包中的类?

#如何在java中使用另一个包中的类?| 来源: 网络整理| 查看: 265

如何在java中使用另一个包中的类?,第1张

我想知道如何使用其他包中的类

这是包project1内的文件

package project1; class student{ void print(){ System.out.println("s"); } } class teacher{ void print(){ System.out.println("t"); } } public class Project1 { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here } }

这是包project2内的文件

package project2; import project1.student; public class Project2 { /** * @param args the command line arguments */ public static void main(String[] args) { student x = new student(); } }

但是我收到的错误是学生没有公开,

我是否以错误的方式导入学生课程,以至于我无法使用学生课程,或者无法做到这一点?

最佳答案:

5 个答案:

答案 0 :(得分:3)

检查this link

如果某个类没有修饰符(public,private ...),则它使用默认修饰符,这意味着只能从同一个包中访问该类。

在这个this table中,您将很容易看到:

访问级别 Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N // this is your class private Y N N N

所以您需要在单独的文件中将Student类声明为公开,或将Project2放在与Student和Teacher相同的包中}

public class student{ void print(){ System.out.println("s"); } }

答案 1 :(得分:1)

首先,你不能有两种主要方法。

尝试使类静态,以便您可以使用Class.etc;

访问它们

或者您可以尝试创建每个类的新对象(我认为这样更好)。 删除第二个主要方法,只留一个。 并将其作为第一个:

var base_url="http://localhost/ums/"; define(['angularAMD', 'ngRoute','flash','angular-loading-bar','ngAnimate','uniqueField','input_match','angular-chart'], function (angularAMD) { var app = angular.module('angularapp', ['ngRoute','flash','angular-loading-bar','ngAnimate','uniqueField','input_match','angular-chart']); app.config(['$routeProvider', function($routeProvider){ $routeProvider .when('/dashboard', angularAMD.route({ title : 'Dashboard', controller : 'dashboardCtrl', templateUrl : base_url 'angular/partials/admin/dashboard.php', controllerUrl: base_url 'angular/js/admin/controllers/dashboardCtrl.js' })) //.......................all routing ............// .otherwise({ redirectTo : '/dashboard' }); }]); app.run(['$rootScope', '$route', function($rootScope, $route) { $rootScope.$on('$routeChangeSuccess', function() { document.title = $route.current.title; }); }]); // Bootstrap Angular when DOM is ready return angularAMD.bootstrap(app); });

现在,您可以使用student1.Something使用此对象访问学生班级。 除了包含main方法的类之外,对所有类执行相同的操作。     }

还要以大写字母开头。

答案 2 :(得分:1)

问题是您的班级学生有默认修饰符,它将访问级别限制在同一个包中(无法在包project1外部访问以打包project2)。一个public class中只能有一个java file。

试试这个:

在包student.java 中创建新文件project1 在上述内容中创建public class student     文件 醇>

答案 3 :(得分:0)

您在访问修饰符时遇到问题。

您的class student现在是package private(无修饰符)。让它public在包外面使用

public class student{ }

阅读accesscontrol了解详情。

答案 4 :(得分:0)

您应该将您的Student课程声明为公开课程,如下所示:

public class student{ void print(){ System.out.println("s"); } }

反正 根据OOP开发方法,在同一文件上有多个类(不是内部类)是一种不好的做法。它对于维护,调试,可重用组件和模块化也是不利的。

我建议您也将类声明拆分为单独的文件(即使类很小而且简单)

本文经用户投稿或网站收集转载,如有侵权请联系本站。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3