java-面向对象

1.面向对象

1.1面向对象和面向过程思想的区别

面向过程强调的是每一步的步骤,强调的是过程

面向对象强调的是对象

面向过程:

买水 不能讲课 出门 去超市 选水 付钱 回来 喝水

买电脑 查看配置 跑去数码广场 买了一台垃圾电脑 带回来 … 装环境

面向对象:

找个对象 班长 班长,我给你两块钱,你帮我买瓶水

好好学习,不然找不到对象

面向对象的思想更符合人类的习惯,为什么?

因为面向对象的思想把我们从执行者变成了指挥者

1.2那什么是对象

万物皆是对象

1.3什么是类

同一种类别的对象他们是一个类

物以类聚,当我们很多对象是同一个品种的时候,其实我们就在一个类里面

比如,各种各样的狗,狗类 各种各样的猫 猫类

1.4类和对象的关系

对象细化到每一个个体,我们每一个人是一个对象,那么我们和人类的关系被包含的关系,类包含了这个类下面所有的对象。

一个类包含了这个类下面所有的对象

类还有大类别,小类别。我们属于小类别,那么肯定就有属于这个小类别上的大类别。比如我们往上就是猿类,我们不能说我们是猴子类吧,23333.但是我们可以说人类和猴子都属于哺乳类,在往上去说就是动物。

1.5属性和行为

类是具有相同属性和行为的一组对象的集合

属性:就是钙食物的状态信息

我们人类 两只脚 一个头 一张嘴 两只手

行为:就是该事物能做什么

人会语言交流学习,会娱乐,吃饭

人类:年龄 姓名 身高 吃饭 学习 打游戏

上面是有共同点

细化到每个对象还有不同点,类只是会把大部分的相同点组合在一起,但是每个对象还是有不同点

把一个类看成一个模板

对象 模板创建出来的产品

2.类

2.1创建类

关键字:class

class 类名

类名规范 首字母大写,后面驼峰命名

类名和java文件名必须要一致

语法:

public class 类名{
    //属性
    //行为
}

一个java中间可以写多个类,但是一个java文件只能写一个public修饰的类,建议一个java文件只写一个类

//类名
punlic class Person{
    //属性
    //行为
}

2.2定义属性

String类型

//字符
char a='a';
System.out.printlin(a);
//字符串
String b="班长好";
System.out.println(b);

语法:

修饰符 数据类型 属性名:

//类名
public class Person{
    //属性
    //修饰符	数据类型	属性的名字;
    //属性的名字	首字母大写,后面驼峰
    //年龄属性
    public int age;
    //身高
    public double height;
    //姓名
    public String name;
    //地址
    public String address;
    //体重
    public double height;
    //行为
    
    
}

2.3定义行为

行为在java中被称为方法

语法:修饰符 返回值类型 方法的名字(参数){

}

//类名
public class Person{
    //属性
    //修饰符	数据类型	属性的名字;
    //属性的名字	首字母大写,后面驼峰
    //年龄属性
    public int age;
    //身高
    public double height;
    //姓名
    public String name;
    //地址
    public String address;
    //体重
    public double height;
    //行为
    //修饰符	返回值类型	方法的名字(参数){代码}
    public void say(){
        //代码
        int i=99;
        System.out.println("hello world!"+99);
    }
    //吃饭
    public void eat(){
        System.out.println("吃饭...");
    }
    //编程
    public void program(){
        System.out.println("coding...");
    }
}

3.对象

3.1如何创建对象

类一旦声明完成,如果没有具体的对象存在,这个类就没有意义

需要得到一个类具体的对象(实例);

语法:类名 变量名=new 类名();

//这个代码写在哪里?

我们要运行java代码,入口类,这个入口类必须有一个main方法

//我们要运行java代码,入口类,这个入口类必须有一个main方法
public class PersonDemo{
    public static void main(String[] args){
        //类名 变量名=new 类名();
        Person Person1=new Person();
        //定义一个Person类型的变量
        Person person2;
        //初始化
        Person2=new Person();
    }
}
//类名
class Person{
    //属性
    public int age;
    public double height;
    public String name;
    public String address;
    public double weight;
    //行为
    public void say(){
        int i=99;
        System.out.println("hello world"+99);
    }
    public void eat(){
        System.out.println("吃饭...");
    }
    public void program(){
        System.out.println("coding...");
    }
}

public class PersonDemo{
    public static void main(String[] args){
        Person person1=new Person();
        Person person2;
        person2=new Person();
        
    }
}

3.2如何使用对象

使用对象:就是得到属性/设置对象的属性,以及调用对象的方法

3.2.1如何获取对象属性的值

通过:对象名.属性 进行调用

变量类型 变量名=对象名.属性;

System.out.println(对象名.属性);

public class PersonDemo{
    public static void main(String[] args){
        //类名 变量名=new 类名();
        Person person1=new Person();
        //如何获取属性
        //变量的类型 变量名=对象名.属性名;
        int age=person1.age;
        //我们在编写类的时候如果没有给初值
        //系统会自动给出默认值 byte short int long默认值是0
        //float double是0.0 boolean false char '' String bull
        System.out.println(age);//0
        //获取person1对象的地址
        System.out.println(person1.address);//null
        //获取person1对象的身高
        System.out.println(person1.height);//0.0
        //定义一个Person类型的变量
        Person person2;
        //初始化
        Person2=new Person();
    }
}

3.2.2定义类的时候给出初始值

//类名
class Person{
    //属性
    public int age=18;
    public double height=80.0;
    public String name="班长";
    public String address;
    public double weight;
    //行为
    public void say(){
        int i=99;
        System.out.println("hello world"+99);
    }
    public void eat(){
        System.out.println("吃饭...");
    }
    public void program(){
        System.out.println("coding...");
    }
}

public class PersonDemo{
    public static void main(String[] args){
        //类名 变量名=new 类名();
        Person person1=new Person();
        //如何获取属性
        //变量的类型 变量名=对象名.属性名;
        int age=person1.age;
        //我们在编写类的时候如果没有给初值
        //系统会自动给出默认值 byte short int long默认值是0
        //float double是0.0 boolean false char '' String bull
        System.out.println(age);//18
        //获取person1对象的地址
        System.out.println(person1.name);//班长
        //获取person1对象的身高
        System.out.println(person1.height);//80.0
        //定义一个Person类型的变量
        Person person2;
        //初始化
        Person2=new Person();
    }
}

3.2.3给属性赋值

语法:

对象名.属性=具体值;

class Person{
     //属性
    public int age=18;
    public double height=80.0;
    public String name="班长";
    public String address;
    public double weight;
    //行为
    public void say(){
        int i=99;
        System.out.println("hello world"+99);
    }
    public void eat(){
        System.out.println("吃饭...");
    }
    public void program(){
        System.out.println("coding...");
    }
}

public class PersonDemo{
    public static void main(String[] args){
        //创建一个对象
        Person person=new Person();
        //获取这个对象的name属性
        System.out.println(person.name);//班长
        //如何给对象的属性进行赋值?
        //对象名.属性=具体值;
        person.name="副班长";
        //新的值来了,旧的值就被覆盖了
        System.out.println(person.age);//18
        
        person.age=81;
        System.out.println(person.age);//81
        
        Person person2=new Person();
        System.out.println(person2.age);//18
    }
}

3.2.4如何使用方法

语法:对象名.方法名();

class Person{
     //属性
    public int age=18;
    public double height=80.0;
    public String name="班长";
    public String address;
    public double weight;
    //行为
    public void say(){
        int i=99;
        System.out.println("hello world"+99);
    }
    public void eat(){
        System.out.println("吃饭...");
    }
    public void program(){
        System.out.println("coding...");
    }
}
public class PersonDemo{
    public static void main(String[] args){
        //创建一个对象
        Person person=new Person();
        //获取这个对象的name属性
        System.out.println(person.name);//班长
        //如何获取对象的属性进行赋值?
        //对象名.属性=具体值;
        person.name="副班长";
        //新的值来了,旧的值就被覆盖了
        System.out.println(person.name);//副班长
        System.out.println(person.age);//18
        person.age=81;
        System.out.println(person.age);//81
        
        //副班长需要吃饭
        //语法:对象名.方法名()
        //调用一次执行一次
        person.say();
        person.eat();
        person.program();
        
        Person person2=new Person();
        System.out.println(person2.age);//18
    }
}

3.3对象的内存图

3.3.1一个对象的内存图

class Phone{
    //品牌
    public String brand;
    //价格
    public double price;
    //颜色
    public String color;
    public void call(String name){
        //String name 形式参数
        System.out.println("打电话");
    }
    
    public void playGame(){
        System.out.println("打王者荣耀");
    }
    
    public void sendSms(){
        System.out.println("发送短信");
    }
}

public class PhoneDemo{
    public static void main(String[] args){
        //创建华为手机 银色 6666
        Phone phone=new Phone();
        System.out.println(phone.brand+" "+phone.color+" "+phone.price);
        
        //赋值的时候 对象名.属性 写在左边
        phone.brand="华为";
        phone.price=6666;
        phone.color="银色";
        System.out.println(phone.brand+" "+phone.color+" "+phone.price);
        
        phone.call("班长");
        phone.playGame();
        phone.sendSms();
    }
}

3.3.2两个对象的内存图

在这里插入图片描述

3.3.3三个对象的内存图

class Phone{
    //品牌
    public String brand;
    //价格
    public double price;
    //颜色
    public String color;
    public void call(String name){
        //String name 形式参数
        System.out.println("打电话");
    }
    
    public void playGame(){
        System.out.println("打王者荣耀");
    }
    
    public void sendSms(){
        System.out.println("发送短信");
    }
}

public class PhoneDemo{
    public static void main(String[] args){
        //创建华为手机 银色 6666
        Phone p1=new Phone();
        phone.brand="华为";
        phone.price=6666;
        phone.color="银色";
        System.out.println(p1.brand+" "+p1.color+" "+p1.price);
        p1.call("班长");
        
        //创建锤子手机 黄色 8848
        
        Phone p2=new Phone();
        
        p2.brand="锤子";
        p2.price=8848;
        p2.color="黄色";
        System.out.println(p2.brand+" "+p2.color+" "+p2.price);
        p2.call("副班长");
        
        //赋值的时候 对象名.属性 写在左边
        phone.brand="华为";
        phone.price=6666;
        phone.color="银色";
        System.out.println(phone.brand+" "+phone.color+" "+phone.price);
        
        
        Phone p3=p2;
        //锤子 8848.9 黄色
        System.out.println(p3.brand+" "+p3.price+" "+p3.color);
        p3.brand="小米";
        p3.price=1999;
        p3.color="红色";
        //小米 1999 红色
        System.out.println(p2.brand+" "+p2.price+" "+p2.color);
    }
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值