Bài tập về tính kế thừa trong java.

thethanh1207

Member
15/7/12
67
9
8
29
Vì sao mà cần tạo đối tượng sau khi nhập chiều dài, chiều rộng vậy ban.. Mình tạo đối tượng trước khi nhập cdai, crong là tính ra diện tich bằng 0. Mà ngược lại thì lại tính ra diện tích
Bạn có thể tạo đối tượng trước khi nhập dữ liệu, nhưng sau đó bạn phải gán thuộc tính cho đối tượng đó, ví dụ:
Code:
a.setChieuDai(cd);
a.setChieuRong(cr);
Nếu bạn không gán giá trị cho thuộc tính của đối tượng thì giá trị của các thuộc tính ấy là giá trị mặc đinh. Trong trường hợp biến kiểu số thì giá trị mặc định = 0
 

KhiemJava

New Member
24/3/15
11
0
1
31
Cho mình hỏi ngu một câu: length() và length khác nhau thế nào à :( . Mong câu trả lời của bạn
 

KhiemJava

New Member
24/3/15
11
0
1
31
PHP:
public class Daochuoi {
    public static void main(String[] args) {
        System.out.println("Nhap chuoi: ");
        Scanner obj = new Scanner(System.in);
        String chuoi = obj.nextLine();
        char str[]= chuoi.toCharArray();
        char temp;
        for(int i=0; i<str.length/2; i++){
            //str[i]+=(String)chuoi.length();
             temp=str[i];
             str[i]=str[str.length-1-i];
             str[str.length-1-i]=temp;
           
        }
         System.out.print(str);
    }
}
Sao mình khai báo lenght() không được mà khai báo lenght thì được
 

Joe

Thành viên VIP
21/1/13
3,007
1,335
113
length() is used to get the length of an object like String, StringBuffer or your own object and you implement the "length". It says how many elements this object has.

length is the reserved word for array of any type (primitive or object) and is the number of array-elements

You should start to learn the basics or read THIS. The way you work or program is bizarre !
 

ledaitudk

New Member
9/1/16
6
0
0
27
letucoder.com
Mình đang học java về tính kế thừa. Mình có đề bài tập như thế này. Mình đã làm nhưng mà nó ko ra kết quả. Các bạn xem thử.

Đề bài:

Còn đây là bài mình làm.:

HCNInterface.java.

Code:
package HCNPackage;
public interface HCNInterface   
{
    public abstract int ChuviHCN();
    public abstract int DientichHCN();                 
    public abstract int getChieuDai();
    public abstract int getChieuRong();           
    public abstract void setDaiRong(int cd, int cr);
}
Hinhchunhat.java

Code:
import HCNPackage.HCNInterface;                       
import java.util.Scanner;
public class Hinhchunhat implements HCNInterface           
{
    private int chieudai;
    private int chieurong;
    public int ChuviHCN()
    {
        return (chieudai + chieurong) /2;
    }
    public int DientichHCN()                       
    {
        return chieudai*chieurong;
    }
    public int getChieuDai(    )                       
    {
        return chieudai;                           
    }
    public int getChieuRong()                   
    {
        return chieurong;                           
    }
    public void setDaiRong(int cd, int cr)           
    {
        this.chieudai=cd;
        this.chieurong=cr;                           
    }
}

HCNtest.java.

Code:
import java.util.Scanner;
public class HCNtest extends Hinhchunhat                       
{   
    /*public int d,r;
    public HCNtest(int d,int r)
    {
        this.d=d;
        this.r=r;
    }*/
    public static void main(String[] args)
    {
               
   
               int i,j,cd,cr;
            System.out.print("Nhap so luong hinh chu nhat:");
            Scanner q=new Scanner(System.in);               
            int n = q.nextInt();
            //khai bao mang doi tuong khoang 20 phan tu;
            //HCNtest cn[]=new HCNtest[20];
              //khai bao doi tuong hcn de lay ket qua tu Hinhchunhat
            Hinhchunhat[] hcn = new Hinhchunhat[n];
            for(i=1;i<=n;i++)                       
            {
            System.out.println("Nhap thong tin cho HCN thu "+i);
            System.out.print("Nhap chieu dai:");
            cd= q.nextInt();
            System.out.print("Nhap chieu rong:");
            cr= q.nextInt();
             hcn[i].setDaiRong(cd,cr);
            //cn[i]=new HCNtest(cd,cr);
            }
           
             System.out.println("Stt \t Chieu Dai \t Chieu Rong \t Chu vi \t Dien tich");
             for(i =1;i<=n;i++)
             {
             //hcn[i].setDaiRong(cn[i].d,cn[i].r);
            System.out.println(i+"  \t\t " +hcn[i].getChieuDai()+"   \t\t "+hcn[i].getChieuRong()+"   \t\t\t "+hcn[i].ChuviHCN()+"     \t\t "+hcn[i].DientichHCN());
             }
            
             int Max=hcn[1].DientichHCN();   
            for(i=1;i<=n;i++)
            {
                if(hcn[i].DientichHCN()>Max)   
                Max=hcn[i].DientichHCN();
            }
        System.out.println("Hinh chu nhat co dien tich lon nhat la: "+Max);
                                           
    }
}
GÓP VUI TÍ CHO SÔI NỔI
Code:
package HCNPackage;

import java.util.Scanner;

public class HCNTest extends HinhChuNhat{

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input = new Scanner(System.in);
        System.out.print("Nhap So Phan Tu Cua Mang : ");
        int n = input.nextInt();
        System.out.println();

        HinhChuNhat[] arrayHCN = new HCNTest[n];
       
        for (int i = 0; i < n; i++) {
            System.out.println("Nhap thong tin HCN thu " +(i+1));
            arrayHCN[i] = new HCNTest();
            System.out.print("Nhap Chieu Dai = ");
            int cd = input.nextInt();
            System.out.print("Nhap Chieu Rong = ");
            int cr = input.nextInt();
            arrayHCN[i].setDoDai(cd, cr);
        }
        xuatMang(arrayHCN);
        thongTinHCNLonNhat(arrayHCN);
    }
    public static void xuatMang(HinhChuNhat[] arrayHCN){
       
        for (int i = 0; i < arrayHCN.length; i++) {
            System.out.println("Thong Tin HCN Thu " +(i+1)+" La :");
            System.out.println("Chieu Dai = " +arrayHCN[i].getChieuDai());
            System.out.println("Chieu Rong = " +arrayHCN[i].getChieuRong());
            System.out.println("Dien Tich = " +arrayHCN[i].dientichHCN());
        }
    }
    public static void thongTinHCNLonNhat(HinhChuNhat[] arrayHCN){
        int max = arrayHCN[0].dientichHCN();
        for (int i = 1; i < arrayHCN.length; i++) {
            if (max < arrayHCN[i].dientichHCN()) {
                max = arrayHCN[i].dientichHCN();
            }
        }
        for (int i = 0; i < arrayHCN.length; i++) {
            if (arrayHCN[i].dientichHCN() == max) {
                System.out.println("Thong Tin HCN Lon Nhat");
                System.out.println("Chieu Dai = " +arrayHCN[i].getChieuDai());
                System.out.println("Chieu Rong = " +arrayHCN[i].getChieuRong());
                System.out.println("Dien Tich = " +arrayHCN[i].dientichHCN());
            }
        }
       
    }
}
 

daotuyendev

New Member
27/8/21
1
0
1
Hà Nội
đây là code của mình nha. chưa tối ưu. nghĩ đâu viết đấy ạ. thay vì extends HinhChuNhat thì khởi tạo đối tượng sẽ hay hơn.
Java:
package opp.interfaceINjava;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

public class Bai2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n, chieuDai, chieuRong;
        HinhChuNhat hcn;
        ArrayList<HinhChuNhat> arrayListHCN = new ArrayList<HinhChuNhat>();
        System.out.print("nhập số hình chữ nhật: ");
        n = sc.nextInt();
        for(int i=0; i<n; i++) {
            hcn = new HinhChuNhat();
            System.out.print("nhập chiều dài hình HCN số "+(i+1)+": ");
            chieuDai = sc.nextInt();
            System.out.print("nhập chiều rộng hình HCN số "+(i+1)+": ");
            chieuRong = sc.nextInt();
            hcn.setDaiRong(chieuDai, chieuRong);
            arrayListHCN.add(hcn);
        }
        for(int i=0; i<arrayListHCN.size(); i++) {
            System.out.println("___________________________");
            System.out.println("thông tin hình chữ nhật số "+(i+1));
            System.out.println("chiều dài: "+arrayListHCN.get(i).getChieuDai());
            System.out.println("chiều rộng: "+arrayListHCN.get(i).getChieuRong());
            System.out.println("diện tích: "+arrayListHCN.get(i).dientichHCN());
        }
        HinhChuNhat hinhLonNhat = new HinhChuNhat();
        for(HinhChuNhat hinh : arrayListHCN) {
            int temp = 0;
            if (temp < hinh.dientichHCN()) {
                temp = hinh.dientichHCN();
                hinhLonNhat = hinh;
            }
        }
        System.out.println("hình chữ nhật có diện tích lớn nhất là: chiều dài: "+hinhLonNhat.getChieuDai()
        +", chiều rộng: "+hinhLonNhat.getChieuRong()+", diện tích: "+hinhLonNhat.dientichHCN());
    }
}

interface HCNInterface{
    int dientichHCN();
    int getChieuDai();
    int getChieuRong();
    void setDaiRong(int chieuDai, int chieuRong);
}

class HinhChuNhat implements HCNInterface{
    private int chieuDai, chieuRong;

    @Override
    public int dientichHCN() {
        return (chieuDai+chieuRong)*2;
    }

    @Override
    public int getChieuDai() {
        return chieuDai;
    }

    @Override
    public int getChieuRong() {
        return chieuRong;
    }

    @Override
    public void setDaiRong(int chieuDai, int chieuRong) {
        this.chieuDai = chieuDai;
        this.chieuRong = chieuRong;
    }

}
Modified by JOE. Please follow the hint for the Codes posting HERE or like THIS
posting.png
 
Last edited by a moderator: