tek4

Ép kiểu trong Java

by - September. 26, 2021
Kiến thức
Học
Công nghệ
<p>Trong b&agrave;i viết n&agrave;y, ch&uacute;ng ta sẽ c&ugrave;ng t&igrave;m hiểu về &eacute;p kiểu trong Java c&ugrave;ng với sự trợ gi&uacute;p của c&aacute;c v&iacute; dụ dẫn chứng.</p> <p>Qu&aacute; tr&igrave;nh chuyển đổi gi&aacute; trị của một kiểu dữ liệu (int, float, double, v.v.) sang kiểu dữ liệu kh&aacute;c được gọi l&agrave; &eacute;p kiểu.</p> <p>Trong Java, c&oacute; 13 kiểu &eacute;p. Tuy nhi&ecirc;n, trong b&agrave;i viết n&agrave;y, ch&uacute;ng ta sẽ chỉ tập trung v&agrave;o 2 loại ch&iacute;nh.</p> <ol> <li>&Eacute;p kiểu mở rộng.</li> <li>&Eacute;p kiểu thu hẹp.</li> </ol> <h2>&Eacute;p kiểu mở rộng</h2> <p>Trong kiểu n&agrave;y, Java sẽ tự động chuyển đổi một kiểu dữ liệu sang kiểu dữ liệu kh&aacute;c.</p> <p>V&iacute; dụ:</p> <pre class="language-java"><code>class Main { public static void main(String[] args) { int a = 320; System.out.println(a); double b = a; System.out.println(b); } }</code></pre> <p>Kết quả:</p> <pre class="language-markup"><code>320 320.0</code></pre> <p>Trong v&iacute; dụ tr&ecirc;n, ch&uacute;ng ta đang g&aacute;n biến kiểu dữ liệu int c&oacute; t&ecirc;n l&agrave; a cho một biến kiểu double c&oacute; t&ecirc;n l&agrave; b. Ở đ&acirc;y, Java đầu ti&ecirc;n chuyển đổi dữ liệu kiểu int th&agrave;nh kiểu double. V&agrave; sau đ&oacute; g&aacute;n n&oacute; cho biến kiểu dữ liệu double.</p> <p>Trong &eacute;p kiểu mở rộng, kiểu dữ liệu thấp hơn (c&oacute; k&iacute;ch thước nhỏ hơn) được chuyển đổi th&agrave;nh kiểu dữ liệu cao hơn (c&oacute; k&iacute;ch thước lớn hơn). Do đ&oacute; kh&ocirc;ng c&oacute; sự mất m&aacute;t dữ liệu. Đ&acirc;y l&agrave; l&yacute; do tại sao kiểu chuyển đổi dữ liệu n&agrave;y được xảy ra tự động. Ngo&agrave;i ra, c&aacute;ch &eacute;p kiểu n&agrave;y c&ograve;n&nbsp;được gọi l&agrave; &eacute;p kiểu ngầm định.</p> <h2>&Eacute;p kiểu thu hẹp</h2> <p>Ch&uacute;ng ta sẽ phải chuyển đổi theo một c&aacute;ch thủ c&ocirc;ng kiểu dữ liệu thứ 1 sang kiểu dữ liệu thứ 2 bằng c&aacute;ch sử dụng dấu ngoặc đơn.</p> <p>V&iacute; dụ:</p> <pre class="language-java"><code>class Main { public static void main(String[] args) { double a = 45.5; System.out.println(a); int b = (int) a; System.out.println(b); } }</code></pre> <p>Kết quả:</p> <pre class="language-markup"><code>45.5 45</code></pre> <p>Trong v&iacute; dụ tr&ecirc;n, ch&uacute;ng ta đang g&aacute;n cho biến kiểu dữ liệu double c&oacute; t&ecirc;n l&agrave; a cho một biến kiểu dữ liệu int c&oacute; t&ecirc;n l&agrave; b. C&acirc;u lệnh:</p> <pre class="language-java"><code>int b = (int) a;</code></pre> <p>Ở đ&acirc;y, từ kh&oacute;a int b&ecirc;n trong dấu ngoặc đơn cho biết rằng biến a được chuyển đổi th&agrave;nh kiểu int.</p> <p>Trong &eacute;p kiểu thu hẹp, c&aacute;c kiểu dữ liệu cao hơn (c&oacute; k&iacute;ch thước lớn hơn) được chuyển đổi th&agrave;nh c&aacute;c kiểu dữ liệu thấp hơn (c&oacute; k&iacute;ch thước nhỏ hơn). Do đ&oacute; sẽ xảy ra việc mất dữ liệu. Đ&acirc;y l&agrave; l&yacute; do tại sao kiểu chuyển đổi dữ liệu n&agrave;y kh&ocirc;ng được xảy ra tự động.</p> <p>V&iacute; dụ: chuyển đổi kiểu dữ liệu int (số nguy&ecirc;n) sang kiểu String (chuỗi k&yacute; tự)</p> <pre class="language-java"><code>class Main { public static void main(String[] args) { int a = 10; System.out.println(a); String b = String.valueOf(a); System.out.println(b); } }</code></pre> <p>Kết quả:</p> <pre class="language-markup"><code>10 10</code></pre> <p>C&acirc;u lệnh:</p> <pre class="language-java"><code>String b = String.valueOf(a);</code></pre> <p>Ở đ&acirc;y, ch&uacute;ng ta đ&atilde; sử dụng phương thức valueOf() của lớp String trong Java để chuyển biến kiểu dữ liệu int th&agrave;nh một chuỗi k&yacute; tự.</p> <p>V&iacute; dụ: &Eacute;p kiểu chuỗi k&yacute; tự sang kiểu số nguy&ecirc;n.</p> <pre class="language-java"><code>class Main { public static void main(String[] args) { String a = "230"; System.out.println(a); int b = Integer.parseInt(a); System.out.println(b); } }</code></pre> <p>Kết quả:</p> <pre class="language-markup"><code>230 230</code></pre> <p>C&acirc;u lệnh:</p> <pre class="language-java"><code>int b = Integer.parseInt(a);</code></pre> <p>Ở đ&acirc;y, ch&uacute;ng ta đ&atilde; sử dụng phương thức parseInt() của lớp Integer để chuyển một biến kiểu chuỗi k&yacute; tự th&agrave;nh một biến kiểu int (kiểu số nguy&ecirc;n).</p> <p><strong>Ch&uacute; &yacute;: Nếu biến kiểu String (kiểu chuỗi k&yacute; tự) kh&ocirc;ng thể được chuyển đổi th&agrave;nh biến kiểu int (kiểu số nguy&ecirc;n) th&igrave; một ngoại lệ NumberFormatException sẽ được đưa ra.</strong></p> <p>Tr&ecirc;n đ&acirc;y l&agrave; kh&aacute;i niệm v&agrave; v&iacute; dụ cơ bản về &eacute;p kiểu trong Java. Hy vọng mọi người c&oacute; thể &aacute;p dụng v&agrave;o trong chương tr&igrave;nh của m&igrave;nh. Mọi người h&atilde;y tiếp tục theo d&otilde;i c&aacute;c b&agrave;i tiếp theo v&agrave; cập nhật c&aacute;c b&agrave;i tiếp theo tr&ecirc;n <a href="http://tek4.vn">tek4</a> nh&eacute;!</p>