随笔 - 217  文章 - 4  评论 - 4  阅读 - 23587

Java学习十二

今天学习了javaweb中一部分反射的知识。

反射:将类的各个组成部分封装为其他对象。好处:①在运行的过程中可以操作对象,例如在使用idea时出现的方法;②解耦,提高代码的复用性。

反射,又被称为框架的灵魂,框架是一种半成品软件,框架基础上进行软件开发能够简化代码。

获取class对象的方式:

  ①class.forName("全类名"):将字节码文件加载进内存,返回class对象,多用于配置文件。

  ②类名.class:通过类名属性class获取。多用于参数传递。

  ③对象.getclass():getclass()在object类中定义

复制代码
 1 public class test {
 2     public static void main(String[] args) throws ClassNotFoundException {
 3         //1.class.forname()
 4         Class c1=Class.forName("reflect.Person");
 5         System.out.println(c1);
 6         //2.类名
 7         Class c2=Person.class;
 8         System.out.println(c2);
 9         //3.对象.getclass()
10         Person p=new Person();
11         Class c3=p.getClass();
12         System.out.println(c3);
13         //比较对象
14         System.out.println(c1==c2);
15         System.out.println(c1==c3);
16     }
17 }
18 
19 
20 class Person {
21     private String name;
22     private int age;
23 
24     public Person(String name, int age) {
25         this.name = name;
26         this.age = age;
27     }
28     public Person(){}
29 
30     public String getName() {
31         return name;
32     }
33 
34     public void setName(String name) {
35         this.name = name;
36     }
37 
38     public int getAge() {
39         return age;
40     }
41 
42     public void setAge(int age) {
43         this.age = age;
44     }
45 }
复制代码

 

 通过代码和运行结果得知,三种对象获取方式所获对象是相同的。

class对象功能

1、获取成员变量;2、获取构造方法;3、获取成员方法;4、获取类名。

下面是我用Java语言写的两道题

复制代码
 1 //打印乘法表
 2 public class Lianxi15 {
 3     public static void main(String[] args) {
 4         for (int i = 1; i <=9; i++) {
 5             for (int j = 1; j <= i; j++) {
 6                 System.out.print(j + "*" + i + "=" + j * i + "\t");//将各个运算式隔开
 7                 if (i == j) {
 8                     System.out.print("\n");//换行
 9                 }
10             }
11         }
12     }
13 }
复制代码

这道题在之前有做过,这里再做一遍权当复习。

复制代码
 1 //猴子摘桃
 2 public class Lianxi16 {
 3     public static void main(String[] args) {
 4         int x=1;//定义一个变量,第十天的桃子数量
 5         for(int i=1;i<=10;i++){
 6             x=(x+1)*2;//逆推
 7         }
 8         System.out.println("第一天摘的桃子"+x);
 9     }
10 }
复制代码

这道题最重要的是逆推的思想。

posted on   跨越&尘世  阅读(29)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示