如何在java中使用另一个包中的类? |
您所在的位置:网站首页 › java类中调用另一个类的方法怎么弄 › 如何在java中使用另一个包中的类? |
我想知道如何使用其他包中的类 这是包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 |