Java是一種面向對象的編程語言,通過類、對象、繼承等概念實現各種功能。在Java中,靜態調用和注入是應用廣泛的編程技術。
靜態調用是指不創建對象,直接調用類中的靜態方法或屬性。使用“類名.方法名”或“類名.屬性名”來調用,不需要實例化類。例如:
public class StaticExample { public static void helloWorld() { System.out.println("Hello World!"); } public static String name = "Java"; } public class Main { public static void main(String[] args) { StaticExample.helloWorld(); //靜態調用helloWorld方法 System.out.println(StaticExample.name); //靜態調用name屬性 } }
注入是指使用依賴注入(DI)或控制反轉(IoC)技術,將一個對象的依賴關系由容器進行管理,實現松耦合。使用注解或配置文件來實現。例如:
public interface UserService { void addUser(User user); User getUser(Long id); } @Service public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; //注入UserDao對象 @Override public void addUser(User user) { userDao.save(user); } @Override public User getUser(Long id) { return userDao.findById(id); } } @Repository public class UserDaoImpl implements UserDao { @Override public void save(User user) { System.out.println("保存用戶:" + user.getName()); } @Override public User findById(Long id) { return new User(id, "Tom"); } } public class Main { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); UserService userService = ctx.getBean(UserService.class); //獲取UserService對象 userService.addUser(new User(1L, "Jack")); //調用addUser方法 } }
這里使用Spring框架提供的注解@Autowire和@Repository、@Service等注解來實現依賴注入。在Main類中,先使用ApplicationContext獲取UserService對象,再調用其addUser方法,由容器來管理UserDao對象的創建和注入。