菜鸡学习day06_面向对象三大特征&类的创建使用&构造方法

菜鸡学习day06

package day06;

import org.w3c.dom.ls.LSOutput;

import java.util.Arrays;

/*
面向过程
面向对象三大特征(封装,继承,多态)
1.封装 (隐藏过程)   方法
                     关键字private(将需要保护的成员变量进行修饰)
                                    限定范围,在指定范围外不能直接访问
类和对象
类是对象的模板,对象是类的实体

类的定义格式
public class 名称{
    成员变量:
        变量类型 变量名称;
    成员方法:
        1;
        2;
        3;
}
注:成员方法里面没有static

导包(指出类的位置)  import 包名称.类名称;
创建      类名称 对象名 = new 类名称();
使用  1.使用成员变量:对象名.成员名
      2.使用成员方法:对象名.成员方法名(参数)

局部变量只能在方法内部使用,且必须赋值,堆
成员变量在类中使用,在方法外,有默认值0/null等,栈
 */
//-----------------------类,单独一个文件(?)

public class Student{
    String name;
    int age;
    public void fangfa(){
        System.out.println("方法");
    }
}
//---------------------------------------
public class D0601 {
    public static void main(String[] args) {
        int [] arrayA={ 1 , 2 , 3 , 4 , 5 };
        System.out.println(Arrays.toString(arrayA));
        //--------------------------使用类
        Student stu = new Student();//创建一个对象stu
        System.out.println(stu.name);//使用成员变量,null
        System.out.println(stu.age);//0
        stu.name = "小明";//改变成员变量内容
        System.out.println(stu.name);//使用成员变量,null
        stu.fangfa();//使用成员方法
    }
}
package day06;
//模拟手机
/*
private定义关键字
格式: private 数据类型 数据名称;
使用格式:  输入 xxx.setXxxx(数据);
           输出 xxx.getXxxx();
           (若为boolean 则get变为is,set不变)

this
当局部变量和成员变量重名,根据就近原则优先使用局部变量
若需使用成员变量,改格式:   this.成员变量名

构造方法
专门用来创建对象,通过new创建对象时就是在调用构造方法
格式: public 类名称(参数类型 参数名称){
            方法体;
}
注:构造名称 = 类名称
    不写返回值类型和void
    不能return返回值
    若没有构造方法,则自动创建
    若有构造方法,则不再自动创建
    构造方法可重载(方法名称相同,参数个数不同)
 */
public class Phone {
    String name;
    private int price;
    String color;

    public void call(String who){
        System.out.println("打电话给"+who);
    }
    public void message(String who){
        System.out.println("发短信给"+who);
    }
    public void setPrice (int num){
        if(num >= 0){
            price = num;
        }
        else{
            System.out.println("价格错误。");
        }
    }
    public int getPrice(){
        return price;
    }
//  public Phone(){
//      System.out.println("构造方法。");//无参构造
//  }
}
package day06;
//高端手机
/*
12两个对象对应不同地址,修改内容互不影响

如果    Phone stu2 = stu1;则对应同一个地址
 */
public class D0602 {
    public static void main(String[] args) {
        Phone stu1 = new Phone();//创建一个对象stu
        stu1.name = "小明";//改变成员变量内容
        stu1.color = "绿色";
        stu1.setPrice(8848);
        System.out.println(stu1.name);//使用成员变量
        System.out.println(stu1.color);
        System.out.println(stu1.getPrice());
        stu1.call(stu1.name);//使用成员方法
        stu1.message(stu1.name);


        Phone stu2 = new Phone();//创建一个对象stu
        stu2.name = "小红";//改变成员变量内容
        stu2.color = "红色";
        stu2.setPrice(7017);
        System.out.println(stu2.name);//使用成员变量
        System.out.println(stu2.color);
        System.out.println(stu2.getPrice());
        stu2.call(stu2.name);//使用成员方法
        stu2.message(stu2.name);

        method(stu1);//传递的是stu的地址

        Phone stu3 = getPhone();
        System.out.println(stu3.name);//使用成员变量
        System.out.println(stu3.color);
        System.out.println(stu3.getPrice());
        stu3.call(stu3.name);//使用成员方法
        stu3.message(stu3.name);

//      Phone one = new Phone();
    }

    public static void method(Phone a) {
        System.out.println("现在使用的是" + a.name + "的手机。");
    }

    public static Phone getPhone() {
        Phone stu = new Phone();
        stu.name = "大明";//改变成员变量内容
        stu.color = "蓝色";
        stu.setPrice(43323);
        return stu;
    }
}
package day06;

/*自动创建
标准类Java Bean
包含四个部分
1.所有成员变量都用private
2.每个成员变量都编写一堆set/get(is)
3.编写一个无参和一个全参的构造方法
 */
public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
package day06;

public class D0603 {
    public static void main(String[] args) {
        Student stu1 = new Student();
        stu1.setName("小明");
        stu1.setAge(17);
        System.out.println("姓名:" + stu1.getName() + ",年龄:" + stu1.getAge());
        Student stu2 = new Student();
        stu2.setName("小红");
        stu2.setAge(16);
        System.out.println("姓名:" + stu2.getName() + ",年龄:" + stu2.getAge());
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值