什么是面向对象

  • 面向对象编程(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)的更多相关文章

  1. 面向对象编程 —— java实现函数求导

    文章目录 ★引子 ★求导 ★最初的想法 ★初步的想法 ★后来的想法 ★最后的想法 ★编程范式 ★结尾 首先声明一点,本文主要介绍的是面向对象(OO)的思想,顺便谈下函数式编程,而不是教你如何准确地.科 ...

  2. 201771010118马昕璐《面向对象程序设计java》第八周学习总结

    第一部分:理论知识学习部分 1.接口 在Java程序设计语言中,接口不是类,而是对类的一组需求描述,由常量和一组抽象方法组成.Java为了克服单继承的缺点,Java使用了接口,一个类可以实现一个或多个 ...

  3. 201771010134杨其菊《面向对象程序设计java》第十周学习总结

    第8章泛型程序设计学习总结 第一部分:理论知识 主要内容:   什么是泛型程序设计                   泛型类的声明及实例化的方法               泛型方法的定义      ...

  4. 201771010134杨其菊《面向对象程序设计java》第九周学习总结

                                                                      第九周学习总结 第一部分:理论知识 异常.断言和调试.日志 1.捕获 ...

  5. 201771010134杨其菊《面向对象程序设计java》第八周学习总结

    第八周学习总结 第一部分:理论知识 一.接口.lambda和内部类:  Comparator与comparable接口: 1.comparable接口的方法是compareTo,只有一个参数:comp ...

  6. 面向对象的Java实现

    1.面向对象的Java实现--封装 1-1:封装 a.为什么需要封装(封装可以是数据方便维护.增加实用性.方便扩展等等.通过面向对象的思想,模拟现实生活中的事物.) b.什么是封装(封装就是将属性私有 ...

  7. 201571030332 扎西平措 《面向对象程序设计Java》第八周学习总结

    <面向对象程序设计Java>第八周学习总结   项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https: ...

  8. # 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封装 ...

  9. 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封装 ...

  10. 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封装 ...

随机推荐

  1. 蓝牙信标、智能楼宇应用国产低功耗芯片BLE5.2 PHY6252

    PHY6252是一款支持BLE 5.2功能的系统级芯片(SoC),集成了低功耗的高性能多模射频收发机,搭载32位高性能低功耗处理器,提供64K retention SRAM.可选512/256K Fl ...

  2. notepad++设置

    1.背景颜色 [设置]-[语言格式设置] 选择主题:Solarized-light

  3. saml login的流程

    用户会访问首页/, 然后进入到指定的一个URL, 就是admin在site-settings里面的设置的那个地址, 发现权限不够,进入到403accesslogin, 然后调用user4032logi ...

  4. GrADS CTL文件 VARS字段

    GrADS可以读取GRIB格式的再分析数据,如ERA5,CFSR,CRA40等.对于这些数据,借助grib2ctl/g2ctl程序,生成描述文件(*.ctl文件),再通过gribmap命令,生成索引文 ...

  5. Access to the path 'C:\Windows\TEMP\XXX.tmp' is denied.

    System.UnauthorizedAccessException: Access to the path 'C:\Windows\TEMP\ASPNETCORE_935a19f1-814f-4b3 ...

  6. protobuf笔记

    protobuf的enum .proto的enum类型在编译后,是C++的enum

  7. Skywalking安装

    https://www.cnblogs.com/duanxz/p/15602842.html

  8. 使用nvm安装不同版本的NodeJS

    下载及安装 下载地址:https://github.com/coreybutler/nvm-windows/releases 配置nodejs的镜像地址 nvm node_mirror https:/ ...

  9. linux系统过滤ip地址总结

    Perl模块用法 安装Perl模块 # 官网地址 https://metacpan.org/pod/Regexp::Common # 下载地址 https://cpan.metacpan.org/au ...

  10. WPF侧边导航栏实现

    一.先看效果 1 添加Nuget库 站长使用.Net Core 3.1创建的WPF工程,创建"DropDownMenu"解决方案后,需要添加两个Nuget库:MaterialDes ...