в прошлом году я пересмотрел программирование, сосредоточившись на Java после перерыва. Моя цель была более сложным языком, чем Python. Я посвятил 3-4 месяца освоению основных концепций Java: ее эксплуатационная механика, объектно-ориентированное программирование (ООП), управление памятью и подключение к базе данных через JDBC.
недавно я перешел в веб -разработку, начиная с JavaScript. После нескольких дней изучения JavaScript я хочу поделиться своими наблюдениями и пониманием ключевых различий между Java и JavaScript, и как возможен плавный переход.
]]
]
string ,
int ,
float ,
boolean ) при определении переменных. JavaScript, однако, гибкий; Переменные объявляются с использованием
let или
const (для констант), с определением типа, возникающим во время выполнения. While
var обслуживал аналогичную цель,
let и
const теперь предпочтительнее.
]
java Пример:
класс Main { public static void main (string [] args) { int a = 5; int b = 6; int result = a b; System.out.println (результат); } }class Main {
public static void main(String[] args) {
int a = 5;
int b = 6;
int result = a b;
System.out.println(result);
}
}
javascript Пример: ]
let a = 5; Пусть b = 6; Пусть сумма = A B; console.log ("sum is:" sum);let a = 5;
let b = 6;
let sum = a b;
console.log("The sum is: " sum);
oop дивергенции в java и javascript Следующие фрагменты кода иллюстрируют синтаксические различия в создании класса и метода:
java:
класс Person { String name; Человек (имя строки) { this.name = name; } void Greet () { System.out.println ("Привет", имя); } public static void main (string [] args) { Человек = новый человек («Джон»); Person.greet (); } }
class Main {
public static void main(String[] args) {
int a = 5;
int b = 6;
int result = a b;
System.out.println(result);
}
}
javascript: класс Person { конструктор (имя) { this.name = name; } приветствовать() { console.log (`hello, $ {this.name}`); } } const Person = новый человек ("Джон"); Person.greet ();
class Person {
constructor(name) {
this.name = name;
}
greet() {
console.log(`Hello, ${this.name}`);
}
}
const person = new Person("John");
person.greet();
В Java создание объекта требует определения класса. JavaScript предлагает гибкость; Объекты могут быть созданы непосредственно без явных объявлений класса.
javascript
const person = { Имя: "Джон", Приветствую: function () { console.log (`hello, $ {this.name}`); } }; Person.greet ();
const person = {
name: "John",
greet: function() {
console.log(`Hello, ${this.name}`);
}
};
person.greet();
java:
Class Animal { void sound () { System.out.println («Some Sound»); } } классная собака расширяет животное { void sound () { System.out.println ("кора"); } } открытый класс Main { public static void main (string [] args) { Собака собака = новая собака (); Dog.sound (); } }
class Animal {
void sound() {
System.out.println("Some sound");
}
}
class Dog extends Animal {
void sound() {
System.out.println("Bark");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.sound();
}
}
Class Animal { звук() { console.log («немного звучания»); } } классная собака расширяет животное { звук() { console.log ("кора"); } } const Dog = new Dog (); dog.sound ();
]class Animal {
sound() {
console.log("Some sound");
}
}
class Dog extends Animal {
sound() {
console.log("Bark");
}
}
const dog = new Dog();
dog.sound();
инкапсуляция JavaScript слабее Java; ему не хватает модификаторов доступа ( public ). Однако нотация
# (частное поле), представленное в ES2022, предоставляет степень управления частным полем:
]
класс Person {
#имя;
конструктор (имя) {
это.#name = name;
}
приветствовать() {
console.log (`hello, $ {this.#name}`);
}
}
const Person = новый человек ("Джон");
Person.greet ();
console.log (человек.#name); // Ошибка: частное поле
аспекты полиморфизма
class Person {
#name;
constructor(name) {
this.#name = name;
}
greet() {
console.log(`Hello, ${this.#name}`);
}
}
const person = new Person("John");
person.greet();
console.log(person.#name); // Error: Private field '#name' must be declared in an enclosing class
JavaScript не поддерживает перегрузку метода из-за его интерпретированного характера и отсутствия проверки времени компиляции. Однако переоценка метода поддерживается: Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3