💎

オブジェクト指向プログラミング四種盛り(py,java,c#,js)

2022/09/13に公開

●オブジェクト指向プログラミング四種盛り。
 味比べ。
 言語間の違いを知ることでプログラミングを深く学ぶ。
 クラス変数とインスタンス変数について違いが大きい。。。などなど
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

ログインするとコメントできます