есть класс myDate. Как сделать так, чтобы я мог вызывать методы следующим образом: myDate.reverse().getDate(); myDate.getDate();
class myDate {
static private Date today = new Date();
static private SimpleDateFormat format = new SimpleDateFormat(“dd.MM.yyyy”);
public private String date = format.format(today);
public static String getDate() {
return date;
}
public static String reverse() {
String[] split = date.split(“\\.”);
date = split[2] + “.” + split[1] + “.” + split[0];
return date;
}
public static void setDate(String string) {
date = string;
}
}
Это называется Fluent Interface
Реализуется при помощи возврата экземпляра того же класса из методов:
public class Example {
public Example method1() {
System.out.println("method1");
return this;
}
public Example method2() {
System.out.println("method2");
return this;
}
public Example method3() {
System.out.println("method3");
return this;
}
}
После это используется так:
new Example().method1().method2().method3();
Для вызова метода чем точку, предыдущий метод должен возвращать объект того же класса.
public class Michael {
public startTheGame() {
return new Michael();
}
public void print() {
System.out.print("That is true!");
}
}
Затем создаете объект и вызываете методы:
Michael theBestBoy = new Michael();
theBestBoy.startTtheGame().print();
С полным примером, хотя не совсем понял, что у вас с модификаторами доступа. Объект класса в любом случае придется создавать,ибо в таком синтактисе нужна ссылка на не статический класс
import java.util.Date;
import java.text.*;
class qew{
public static void main(String[] args){
myDate d = new myDate();
System.out.println(d.getDate());
System.out.println(myDate.getDate());
System.out.println(d.reverse().getDate());
System.out.println(myDate.getDate());
}
}
class myDate {
static private Date today = new Date();
static private SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
static private String date = format.format(today);
public static String getDate() {
return date;
}
public myDate reverse() {
String[] split = date.split("\\.");
date = split[2] + "." + split[1] + "." + split[0];
return this;
}
public static void setDate(String string) {
date = string;
}
}
Отдельно класс
class myDate {
static private Date today = new Date();
static private SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
static private String date = format.format(today);
public static String getDate() {
return date;
}
public myDate reverse() {
String[] split = date.split("\\.");
date = split[2] + "." + split[1] + "." + split[0];
return this;
}
public static void setDate(String string) {
date = string;
}
}
Если необходимо, могу привести немного другой пример работы с объектом и таким синтаксисом
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение