💎
オブジェクト指向プログラミング四種盛り(py,java,c#,js)
●オブジェクト指向プログラミング四種盛り。
味比べ。
言語間の違いを知ることでプログラミングを深く学ぶ。
クラス変数とインスタンス変数について違いが大きい。。。などなど
1)) python,キーボード入力の文字列を繋げて出力する
class print_text:
#text = "jim_soros" #class var
def __init__(self) -> None:
self.text = "" #instance var
def input_print_text(self) -> str:
num = 1
while num < 5:
self.text += input("キーボード入力:")
print(self.text)
num += 1
text = print_text() #make object
text.input_print_text()
ターミナル
キーボード入力:111
111
キーボード入力:222
111222
キーボード入力:333
111222333
キーボード入力:444
111222333444
2)) java,キーボード入力の文字列を繋げて出力する
import java.util.Scanner;
class Print_text{
//private static StringBuilder sb_text = new StringBuilder("test"); //static -> class var
private StringBuilder sb_text = new StringBuilder("jim_soros"); //non_static -> instance var
public Print_text(){ //constructor
sb_text = new StringBuilder("");
}
public void input_print_text(){
int num = 1;
while(num<5){
System.out.println("キーボード入力:");
Scanner scanner = new Scanner(System.in);
sb_text.append(new StringBuilder(scanner.next()));
System.out.println(sb_text);
num +=1;
}
}
}
class test{
public static void main(String[] args){
Print_text text = new Print_text(); //make instance
text.input_print_text();
}
}
3)) csharp,キーボード入力の文字列を繋げて出力する
using System;
using System.Text;
class Print_text{
//private static StringBuilder sb_text = new StringBuilder("test"); //static -> class var
private StringBuilder sb_text = new StringBuilder("jim_soros"); //non_static -> instance var
public Print_text(){ //constructor
sb_text = new StringBuilder("");
}
public void input_print_text(){
int num = 1;
while(num<5){
Console.WriteLine("キーボード入力:");
sb_text.Append(new StringBuilder(Console.ReadLine()));
Console.WriteLine(sb_text);
num += 1;
}
}
}
class test{
public static void Main(String[] args){
Print_text text = new Print_text(); //make instance
text.input_print_text();
}
}
4)) javascript,キーボード入力の文字列を繋げて出力する
'use strict';
class Print_text{
//static #privateFeild = "jim_soros"; //class var
constructor(){
this.text = ""; //instance var
}
//make Promise
readUserInput(question){
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
})
return new Promise((resolve, reject) => {
readline.question(question, (answer) => {
resolve(answer);
readline.close();
})
})
}
//main
async input_print_text(){
let num = 1;
while(num<5){
const in_text = await this.readUserInput('キーボード入力:');
this.text += in_text;
console.log(this.text);
num += 1;
}
}
}
const text = new Print_text(); //make instance
console.log(text.input_print_text());
Discussion