类和对象的学习。


1、 什么是类?
    class 就是声明一个类。
    概念:一类事物的总体描述,及该事物包含方法的总称。
        属性: 描述这个事物的
        方法: 这个事物特有的行为。
        
        
    定义一个学生类:
        属性:
            名字
            年龄
            性别
        方法: 
            吃饭
            睡觉
            学习
            打游戏
        
    
2、封装一个学生类。
        定义一个学生类:class Student
            属性:
                名字    String name;
                年龄    int age;
                性别    char sex;
            方法: 
                吃饭    eat();
                睡觉    sleep();
                学习    study();
                打游戏  playGame();

        代码实现,封装一个学生类:
            
            class Student{
                String name;
                int age;
                char sex;
                
                public void eat(){
                    System.out.println("学生会吃饭");                
                }    

                public void sleep(){
                    System.out.println("学生会睡觉");
                }
                
                public void study(){
                    System.out.println("学生会学习");
                }
                
                public void playGame(){
                    System.out.println("学生不会打游戏");
                }                    
            }


3、权限修饰词的学习。
        
        public    公共的        
                被public 修饰的东西,同一个项目中,所有包下面的类,都能够调用访问。
        
        private    私有的
                被private 修饰的东西,只能在本类中 调用访问。
        
        protect 受保护的
                被protect 修饰的东西,受保护的,只能在同一包名下,被调用访问。
        
        static
                被static 修饰的东西,随着类的加载而加载。
                最先加载到内存,随时准备着,被使用。
                
                变量,方法,都可以被static 修饰。
                静态代码块:
                static{
                    类加载的时候就自动执行的代码。可以放在我们定义个静态代码快中。
                    优先加载,创建,执行。等等操作。                    
                }
        


4、局部变量和成员变量的区别。

        成员变量    : 
                (1)定义的位置:类中,方法外。一般定义在最上面。
                (2)作用域 :所有的类中成员,都可以共用该 成员变量。
                (3)初始化区别: 成员变量,可以先声明,不赋值,使用的时候在初始化赋值。
        
        
        局部变量    :
                (1)定义的位置 :定义在方法中,或者方法上。
                (2)作用域 :只有方法内部,才能用,出了方法用不了。
                (3)初始化区别: 局部变量,声明的时候必须初始化,否则不能用。
        


5、创建一个学生类的对象,然后进行使用。
        之前定义了学生类,那么学生类怎么用?
        
        创建一个具体的对象,来调用该对象所在类中方法。
        
        (1)创建对象格式:
            类的类型  对象名称 = new 类的类型();

        (2) 给学生类的属性赋值。
             对象名称.属性名 = 具体的值。
             
        (3)调用对象 包含的方法,执行一系列操作。
            对象名称.方法名();
            
            
            

6、在java思想里面,有封装的概念。就是把事物封装成一个类。
        特点: 
            隐藏实现细节(private),
            对外提供,公共的访问方式(public)。

        Student 类中,那些数据不想让人访问。要实现那些细节的隐藏。
                    哪些东西,对外可以提供公共访问方式?
                    
        给student 类添加公共的访问方式。
            通过set 和get 方法,来操作类中私有的属性。
                        
            set 方法    : 设置该类的属性值。
                public void setName(String name){
                    this.name = name;
                }
                    
                注意: 在方法中,如何调用当前类中成员位置的属性。
                        用 this.属性名    来调用。
                        
                            this代表的是当前类的对象。
            
            get 方法    : 获取该类的属性值。
            
                例如: 通过getName 方法调用,拿到对象的名字。
                public String getName(){
                    return  name;
                }

        
            注意: 变量访问,有优先级问题。
                    从小的范围往大的范围找。
                    (就近原则)

                    
7、 类的封装,对象的创建练习。
    需求: 
        创建一个手机类 Phone
        
            属性: (全部私有private)
                品牌:brand
                价格:price    

                
            方法:(全部公开 public)
                对应属性的get set  方法。
                
                打电话: call()
                发短信: sendMessage()
                玩游戏: playGame()

    具体代码:
    
    ========手机类========
        
        /**
         * 
         *类的封装,对象的创建练习。
            需求: 
                创建一个手机类 Phone
            
                属性: (全部私有private)
                    品牌:brand
                    价格:price    

                
            方法:(全部公开 public)
                对应属性的get set  方法。
                
                打电话: call()
                发短信: sendMessage()
                玩游戏: playGame()
        */
        public class Phone {
            
            private String brand;    //声明手机的品牌属性。
            private int price;        //声明手机的价格属性。
            
            /**
             *  手机品牌属性,设置方法。
             */
            public void setBrand(String brand){
                this.brand = brand;
            }
            /**
             *  手机品牌属性,获取方法。
             */
            public String getBrand(){
                return brand;
            }
            
            /**
             *  手机价格属性,设置方法。
             */
            public void setPrice(int price){
                this.price =  price;
            }
            /**
             *  手机价格属性,获取方法。
             */
            public int getPrice(){
                return price;
            }
            
            public void call(){
                System.out.println(brand + "具有打电话的功能!");
            }
            public void sendMessage(){
                System.out.println(brand + "具有发短信的功能!");
            }
            public void playGame(){
                System.out.println(brand + "具有玩游戏的功能!");
            }
            

        }

    ========手机类的测试类。========

        public class Test02_Phone {
            public static void main(String[] args) {
                //1、创建 手机类的 具体的对象。
                Phone p = new Phone();
                
                //设置手机对象的,品牌和价格。
                p.setBrand("华为Pro30");
                p.setPrice(4999);
                
                System.out.println(p.getBrand()+"----"+p.getPrice());
                p.call();
                p.sendMessage();
                p.playGame();
            }
        }

8、 类的封装中的,toString 方法。
    
     返回 所有类中,定义的属性 对应的值。
     
        /**
         * 通过调用这个放,想要输出打印所有的属性 值 
         */
        public String toString(){
            String print_phone = "该手机品牌为:" + brand +"\n该手机的价格为:"+price; 
            return print_phone;
        }


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值