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
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。
面向对象是一种程序设计的思想,它将程序中的数据和对数据的操作封装在一起,形成对象。对象是类的一个实例,类定义了对象的属性和行为。在Java中,面向对象的概念包括类与对象的关系、封装、构造函数、this关键字、static关键字以及设计模式等方面。 设计模式是在软件设计中常用的解决问题的经验总结,它提供了一套可重用的解决方案。在Java中,单例设计模式是一种常见的设计模式之一,它保证一个类只有一个实例,并提供一个全局访问点。通过使用单例设计模式,可以确保在程序中只有一个对象实例被创建,从而节省了系统资源并提高了性能。 通过使用单例设计模式,可以实现以下效果: - 限制一个类只能有一个实例。 - 提供一个全局访问点,使其他对象可以方便地访问该实例。 - 保证对象的唯一性,避免多个对象的状态不一致。 在Java中,实现单例设计模式有多种方式,包括饿汉式、懒汉式、双重检测锁等。每种方式都有各自的特点和适用场景,开发者可以根据具体的需求选择合适的实现方式。设计模式是一种通用的解决问题的方法,它可以在面向对象的程序设计中提供灵活、可复用的解决方案。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [计算机后端-Java-Java核心基础-第15章 面向对象07 14. 设计模式与单例设计模式.avi](https://download.csdn.net/download/programxh/85435560)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [完整版Java全套入门培训课件 Java基础 03-面向对象(共18页).pptx](https://download.csdn.net/download/qq_27595745/21440470)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值