《Java面向对象第二章》

一、类与对象

什么是类:    类翻译:class
        1.凡是一个.java后缀修饰的文件都是一个类
        2.每个java文件中可以存在多个类。语法如下 class Xxx {  }
        3.每个Java文件有且只能有一个被public修饰的类,且必须和文件名一致。
    
    一般来说:类的组成:A.属性  B.方法

什么是对象
        对象就是类的实例化
        什么是实例化:将类进行new操作。
        例如:  类名  变量名   =   new  类名();
              Test t = new Test();
              称之为:t为Test类的实例化对象。
    
        实例化之后的对象可以:对类的属性或方法进行访问调用。

public class Test {
    
    public static void main(String[] args) {
        
    }
}

class A{

}    

class B{
    
}

课堂练习1:
创建一个工具类,该类的功能如下:
提供方法a1(),该方法只需要完成输出一句话即可。
提供方法a2(),  该方法只需要完成计算方法传递来的2个int值之和并返回。


该工具类写好之后的意义:方便后续去调用它。

public class Test2 {//这个类是工具类
    
    public void a1() {
        System.out.println("我是工具类的a1方法");
    }
    
    public int a2(int a , int b ) {
        return a+b;
    }

}

课堂练习2:
创建一个实体类,该类的功能如下:
提供3个属性,分别是name,age,sex。
提供一个方法,该方法只需要打印这三个属性值即可。

public class Test3 {//假设是一个实体类
    
    String name;
    int age ;
    char sex;
    
    //该方法的作用:输出这个类的三个属性
    public String out() {
        return  "name=" + name +",age=" + age +",sex=" + sex;
    }

}

课堂练习3:
何为测试类:暂时这么理解:有main方法的类
创建一个测试类,创建三个对象分别赋值,并将对象的值打印在控制台上。

public class Test4 {
    
    public static void main(String[] args) {
//        创建一个测试类,调用刚刚创建的工具类的2个方法。
//        如何调用?
//        1.要想调用某个类的方法,需要实例化对象。
//        Test2 t2 = new Test2();
//        t2.a1();
//        int sum = t2.a2(10, 30);
//        System.out.println(sum);

        //创建实体类的三个对象分别赋值,并将对象的值打印在控制台上。
        Test3 t1 = new Test3();
        t1.name = "张三";
        t1.age = 18;
        t1.sex = '男';
        
        Test3 t2 = new Test3();
        t2.name = "李四";
        t2.age = 20;
        t2.sex = '女';
        
        System.out.println(t1.out());
        System.out.println(t2.out());
        
    }

}

 

二、成员变量和局部变量

1.成员变量又称为全局变量: 声明在方法之外的,在该类中的任何地方都可以访问
        特点:如果没有赋予初始值,会自动赋予初始值
        boolean类型默认值:false  (false其实就是0,true其实就是1)
        数字类型: byte  short  int  long  double  float 默认值都是0或0.0
        char : " " 是一个空格
        任何引用数据类型的默认值都是null 例如String  数组
 

2.局部变量:声明在方法之内的,只能在声明的方法内部访问。
        特点:如果没有赋予初始值,不会自动赋予初始值,所以必须要赋值

package com.yyzy.test;

public class Test6 {
 

//以下五个变量都是成员变量  其中1个有初始值 另外4个没有初始值
    byte a = 1;
    int b;
    boolean c;
    String d;
    double e;
    float aa;
    char bb;
    
    public static void main(String[] args) {
        long f = 11;//局部变量必须要赋予初始值
        
        //这里要注意:由于没有学习static的甩法,所以暂时不在main方法中演示
        
        //如何证明没有赋值的成员变量的默认值为多少?
        //1.调用a方法 2.实例化a方法所在的类即可
        Test6 t = new Test6();
        t.a();
        
    }

public  void a() {
        System.out.println(d);//在任何地方都可以访问成员变量。不管有没有赋值
    }   
}

三、方法

方法的组成: public  void  a(int a1,String b2){}
            调用方法:   a(10,"你好");

            实参和形参的区别:
            声明方法的参数列表叫做形参。例如a1 b2
            调用方法的参数列表叫做实参。例如10  "你好"
            
            讨论:如果形参是基本数据类型或引用数据类型  区别是什么?
            
            如果基本数据类型作为形参,那么不会改变实参的值。
            如果引用数据类型作为形参,那么会改变实参的值。

package com.yyzy.test;

public class Test8 {

    public static void main(String[] args) {
        Test8 t = new Test8();
        
        int num = 100;
        t.change1(num);
        System.out.println(num);
        
        Test3 t3 = new Test3();
        t3.age = 18;
        t.change2(t3);
        System.out.println(t3.age);      
    }
    
    
    public void change1(int a) {
        a = 10;
    }
    
    public void change2(Test3 a) {
        a.age = 22;
    }
    
}

四、Java为什么需要方法

将一些重复的代码放在一个方法内部,实现重复的调用,简化代码
        
        方法的理解:帮助我们去做某一件具体的事。例如计算求和。例如登录功能。例如注册功能。
        
        
        方法1的组成语法:调用这个方法,不需要得到什么返回值。
        public void 方法名(参数列表){  //其中参数列表: 数据类型  变量名 ,  数据类型 变量名 的格式
            代码体
        }
        
        
        方法2的组成语法:调用这个方法我需要得到什么类型的返回值
        public 返回数据类型 方法名(参数列表){  //其中参数列表: 数据类型  变量名 ,  数据类型 变量名 的格式
            代码体;
            return 返回值;

package com.yyzy.test;

public class Test9999999999 {
        public static void main(String[] args) {
        
    }
    
    public void a1(int a,String b,char c) {
        System.out.println("我就是一个测试方法,没有返回值");
    }
    
    //调用这个方法可以得到2个数的和
    public int a2(int a ,int b) {
        int sum = a + b;
        return sum;
    }
}

五、注意事项

为什么要将以上代码分开写?而不写在同一个类里。
        
        1.方便管理阅读,如果代码量一多起来,放在一个类里面更加困难进行阅读。
        2.各司其职 每个类都有每个类的作用。
        3.例如:我们现在所学的 测试类(有main方法的就叫测试类)
        那么测试类的规范:只需要执行代码。不需要过程代码。
        例如只需要调用方法,不需要操心方法内部是什么。
        
        一般而言测试类都是放在com.yyzy.test包下
        
        回顾:包package的作用:将代码进行分类。
        
        常见的包:com.yyzy.test包
 

六、总结

今日所学1:工具包和工具类  简称util
        何为工具包:存放工具类的包
        何为工具类:可以被复用的方法。
        例如将密码进行加密。  将所有的大写字母变成小写字母
        计算N个数之和。     将数组进行排序。等等
        
        思考:登录方法是不是工具类?
        答:不是,登录是业务类。

今日所学2:实体类和实体包 简称entity
        何为实体包:存放实体类的包
        何为实体类:世间万物抽象的存在,例如一个人,一个猫,一张银行卡
        等拥有很多属性的类。例如淘宝上的所有商品,例如微信的所有登录用户。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值