面向对象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封装 ...
随机推荐
- Kubernetes理论知识
一.k8s概念 Kubernetes(k8s)是跨主机集群的自动部署.扩展以及运行应用程序容器的开源平台,这些操作包括部署,调度和节点集群间扩展. master node:主节点 Master 是 C ...
- MQTT 发布/订阅模式介绍
MQTT 发布/订阅模式 发布订阅模式(Publish-Subscribe Pattern)是一种消息传递模式,它将发送消息的客户端(发布者)与接收消息的客户端(订阅者)解耦,使得两者不需要建立直接的 ...
- 询问chatGPT的一些问题
- 全链路压测SOP
压测模型构建:人工 线上(大促)流量数据 (数据脱敏) 日常流量数据 业务方新的特性产生的变更数据 友商做过的事情 压测模型构建:自动 流程包括:录制-清洗-回放 (目前能做好的公司非常少) 压测标准 ...
- VS code 安装后gdb调试无法显示STL内容的问题
bar {...} std::_Vector_base<TSample<MyTraits>, std::allocator<TSample<MyTraits> &g ...
- Linux下hadoop和spark的基础环境配置准备
我使用了4台虚拟机centos7来搭建环境, 2个主结点(一般是一个,但为了体验zookeeper,万一其中一个master挂掉呢,另外一个会自动启动接管), 2个从结点 注意:下面的配置主要以主节点 ...
- python pip 下载出问题解决方法(超时出错)
问题如下, 百度了一下找到了解决方法 这样的原因是连接不到国外的安装源,在下载的代码行中手动输入国内安装源 例如: pip install itchat -i https://pypi.tuna.ts ...
- 将\u8BF7字符串转换为汉字
转发自 将\u8BF7\u9009\u62E9 字符串转为汉字的代码_javascript技巧_脚本之家 链接:https://www.jb51.net/article/25187.htm
- LaTex【五】latex导入中文包,支持中文显示
\documentclass{article} \usepackage{CJKutf8} \begin{document} \begin{CJK}{UTF8}{gbsn} 中文样例,UTF-8编码,字 ...
- 2019-2020-1 20199318《Linux内核原理与分析》第十二周作业
<Linux内核原理与分析> 第十二周作业 一.预备知识 Set-UID 是 Unix 系统中的一个重要的安全机制.当一个 Set-UID 程序运行的时候,它被假设为具有拥有者的权限.例如 ...