面向对象1(Java)
什么是面向对象
- 面向对象编程(oop)
- 面向对象编程的本质是:以类的方式组织代码,以对象的组织(封装)数据
- 抽象
- 三大特征:封装、继承、多态
- 从认识论角度考虑是先有对象后有类。对象是具体的事物。类是抽象的,是对对象的抽象
- 从代码运行角度考虑是先有类后有对象。类是对象的模板
回顾方法及加深
运用实例1
public class FangFa {
//mian方法
public static void main(String[] args) {
}
/*
修饰符 返回值类型 方法名(...){
//方法体
return 返回值;
}
*/
//brake:用于结束switch,和结束循环
//return:用于结束整个程序,return之后不能在写代码了
public String sayHello(){
return "hello,world!";
}
public void print(){
return;
}
//抛出异常
//public String readFile(String file) throws IOException{
//
//}
public int max(int a,int b){
return a>b?a:b;//三元运算符
}
}
运用实例2
public class FangFa2 {
//静态方法:含有static,和类一起加载
//非静态方法:不含static,类实例化之后才存在
public static void main(String[] args) {
//实例化学生类 new
//对象类型 对象名=对象值;
Student student = new Student();
student.sayHello();
//实际参数要和形式参数的类型要对应!如:都要是int类型
int add=add(1,2);//int类型
System.out.println(add);
//值传递
int a=1;
System.out.println(a);
zhi(a);
System.out.println(a);//输出的值为1
//引用传递:对象,本质还是值传递
Person person=new Person();
System.out.println(person.name);//null
person.name="李同洲";
System.out.println(person.name);
}
//实际参数要和形式参数的类型要对应!
public static int add(int a,int b){//int类型
return a+b;
}
//值传递
//返回值为空
public static void zhi(int a){
a=10;
}
}
//学生类
class Student {
//非静态方法
public void sayHello(){
System.out.println("学生说话了");
}
}
//定义一个Person类,有一个属性:name
class Person{
String name;//null
}
类与对象
基本介绍
- 类与对象的关系:
- 类是一种抽象的数据类型,他是对某一类事物整体描述\定义,但并不代表某一个具体的事物
- 对象是抽象概念的具体实例化:如:张三是人的实例化;张三的旺财是狗的实例化
- 创建与初始化对象
- 使用new关键字创建对象
- 使用new关键字创建对象时,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中的构造器的调用
运用实例
public class New {
//一个项目应该只存在一个main方法
public static void main(String[] args) {
//类:抽象的,实例化
//类实例化后会返回一个自己的对象
//xm、xh对象就是一个Student类的具体实例
Stedents xh=new Stedents();
Stedents xm=new Stedents();
System.out.println(xh.name);//null
xm.name="李同洲";
xm.age=8;
System.out.println(xm.name);
System.out.println(xm.age);
xm.study();
}
}
//学生类
class Stedents{
//属性:字段
String name;
int age;
//方法
public void study(){
System.out.println(this.name+"在学习");
}
}
构造器(构造方法)
基本介绍
- 类中的构造器也成为构造方法,是在进行创建对象时必须要调用的。
- 构造器的特点:a.必须和类的名字相同;b.必须没有返回类型,也不能写void。
- 构造器的作用:a.new 本质是调用构造方法;b.初始化对象的值
- 注意:一旦定义了有参构造,就必须要显示无参构造
运用实例
public class GouZao {
//一个项目里必须只存在一个main方法
public static void main(String[] args) {
//由People()构造方法然后才可以实例化对象
//new 一个实例化对象
People li = new People();
System.out.println(li.name);//由People()构造方法赋予了name初始值null
People tong=new People("li");
//tong.name="李同洲";
System.out.println(tong.name);
}
}
class People{
String name;
//一个类即使什么都不写,他也存在一个方法
//显示的定义构造器
//实例化初始值
//1.使用new关键字,必须要有构造器,本质是在调用构造器
//无参构造:在没有有参构造时,可以不显示
public People() {
}
//有参构造:一旦定义了有参构造,就必须要显示无参构造
public People(String name) {
this.name = name;
}
}
试题例如
public class Pet {
public static void main(String[] args) {
Pets dog = new Pets();
dog.name="旺财";
dog.age=3;
System.out.println(dog.name);
System.out.println(dog.age);
dog.shout();
Pets cat = new Pets();
System.out.println(cat.name);
System.out.println(cat.age);
cat.shout();
}
}
class Pets{
String name;
int age;
public Pets() {
}
public Pets(int age) {
this.age = age;
}
public Pets(String name) {
this.name = name;
}
public void shout(){
System.out.println("在叫!");
}
}
面向对象1(Java)的更多相关文章
- 面向对象编程 —— java实现函数求导
文章目录 ★引子 ★求导 ★最初的想法 ★初步的想法 ★后来的想法 ★最后的想法 ★编程范式 ★结尾 首先声明一点,本文主要介绍的是面向对象(OO)的思想,顺便谈下函数式编程,而不是教你如何准确地.科 ...
- 201771010118马昕璐《面向对象程序设计java》第八周学习总结
第一部分:理论知识学习部分 1.接口 在Java程序设计语言中,接口不是类,而是对类的一组需求描述,由常量和一组抽象方法组成.Java为了克服单继承的缺点,Java使用了接口,一个类可以实现一个或多个 ...
- 201771010134杨其菊《面向对象程序设计java》第十周学习总结
第8章泛型程序设计学习总结 第一部分:理论知识 主要内容: 什么是泛型程序设计 泛型类的声明及实例化的方法 泛型方法的定义 ...
- 201771010134杨其菊《面向对象程序设计java》第九周学习总结
第九周学习总结 第一部分:理论知识 异常.断言和调试.日志 1.捕获 ...
- 201771010134杨其菊《面向对象程序设计java》第八周学习总结
第八周学习总结 第一部分:理论知识 一.接口.lambda和内部类: Comparator与comparable接口: 1.comparable接口的方法是compareTo,只有一个参数:comp ...
- 面向对象的Java实现
1.面向对象的Java实现--封装 1-1:封装 a.为什么需要封装(封装可以是数据方便维护.增加实用性.方便扩展等等.通过面向对象的思想,模拟现实生活中的事物.) b.什么是封装(封装就是将属性私有 ...
- 201571030332 扎西平措 《面向对象程序设计Java》第八周学习总结
<面向对象程序设计Java>第八周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https: ...
- # 095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 03 封装总结 01 封装知识点总结
095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 04 static关键字(续)
094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 03 static关键字(下)
093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
随机推荐
- 【已解决】SpringBoot + Mybatis-plus 实体类属性注解 @TableField 无法获取到数据库值(属性变量名带下划线)
问题描述: 实体类变量的命名格式 如果采用的是 XX_XX带下划线的形式,那么在低版本的mybatis-plus是不支持和数据库映射的. 如果是单个单词不存在这个问题,如果出现多个单词,尽量采用驼峰式 ...
- py07-文件处理
"""什么是文件? 操作系统提供给用户操作复杂硬件(硬盘)的简易的接口 为什么操作文件 人或者应用程序需要永久的保存数据 如何用 f = open() f.read() ...
- A Novel Sequential Method to Train Physics Informed Neural Networks for Allen Cahn and Cahn Hilliard Equations
一种新的顺序方法去求解关于时间的方程.个人感觉论文很差.(方法不新颖,写作很无聊,排版也有问题,内容也表述不清). 本文提出一种利用单个神经网络,在连续时间段上顺序求解偏微分方程的新型方案.关键思想是 ...
- ideavimrc 示例
我自己的idea vim配置,用熟悉了以后还真的挺方便的 比较常用的有 ManageRecentProjects,快速切换多个project,经常会遇到同时打开多个project,来回切换方便多了 H ...
- cuda-gdb
1, cuda-gdb 可执行文件 2. b 打断点 3. 进入核函数 把断点打在核函数中 4. r 5. cuda block 1 thread 1 选取线程
- python setup.py install 安装、删除。
# python install 安装.卸载 python setup.py install --record files.txt cat files.txt | xargs rm -rf
- php 合并,拆分,追加,查找,删除数组教程
1. 合并数组 array_merge()函数将数组合并到一起,返回一个联合的数组.所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加.其形式为: array array_merg ...
- No.1.3
CSS层叠样式表 /* css注释 */ CSS引入方式 内嵌式:CSS写在style标签中 提示:style标签虽然可以写在页面任意位置,但是通常约定写在 head 标签中(作用范围:当前页面: ...
- ctfshow CRYPTO RSA系列
ctfshow CRYPTO RSA系列 目录 ctfshow CRYPTO RSA系列 babyRSA 分析 解题 esayrsa1 分析 解题 esayrsa2 分析 解题 esayrsa3 分析 ...
- fabric学习笔记2
fabric学习笔记2 20201303张奕博 2023.1.10 Fabric云服务器搭建 参考视频:视频链接:https://www.bilibili.com/video/BV1gV4y1M7q3 ...