面向对象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封装 ...
随机推荐
- git技能树总结
1. git简介 版本控制: 指的是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.版本控制系统发展可分三个阶段:本地版本控制系统 -> 集中式版本控制系统 -> 分布 ...
- 微信小程序之配置业务域名踩过的坑
1.在配置业务域名弹窗中保存按钮一直加载状态,无法保存则刷新当前界面后重新扫码打开该弹窗.2.检验文件一定要放在目标服务器域名下前端文件夹中,否则(放在后台代码文件夹中)访问不到地址.
- Unity旧版图集和新版图集
1.关于旧版图集 ===>结论:设置PackingTag就可以了. ===>分析:设置好PackingTag,那么在进行打包的时候,同一个标签的会被打到1个图集里面,图集最大为2048x2 ...
- QT如何安装?
Qt安装教程 OLD HELPS <oldhelps@126.com > 目录 Qt安装教程 下载 注册.登录 接受验证邮件 安装 下载 从https://download.qt.io/n ...
- j2ee目录索引
j2ee 不完全目录 Eclipse中配置约束(DTD,XSD) Eclipse 快捷键 及其 xsd dtd配置本地约束 ===================================== ...
- 浅谈JS中的element.style和window.getComputedStyle()的区别
MDN对于element.style的解释 被高光的句子中的inline style属性是指css内联样式,即元素的style属性的属性值 总结一下,element.style只能获取到元素的styl ...
- 一个MySQL双引号把我坑惨了!
一.前言 最近经常碰到开发误删除误更新数据,这不,他们又给我找了个麻烦,我们来看下整个过程,把我坑得够惨. 二.过程 由于开发需要在生产环节中修复数据,需要执行120条SQL语句,需要将数据进行更新, ...
- 3阶(次)贝塞尔曲线的JavaScript(JS)实现
php中文网数学符号的显示太差了,推荐看这里 贝塞尔曲线简介:贝塞尔曲线,是贝塞尔老爷子在使用电子计算机设计汽车零件的时候 进行曲面设计而采用的一种参数化的样条曲线. 一般参数方程: B(t) = \ ...
- java问题解答
因为子类继承自父类,会沿用父类的东西(没被覆盖的函数以及可见的成员变量等),而这些东西子类是没有的,需要先初始化父类才能被使用 子类构造方法中调用父类构造方法,一个作用是可以给父类构造方法传递实参,给 ...
- Mysql数据库基础第二章:(七)子查询
Mysql数据库基础系列 软件下载地址 提取码:7v7u 数据下载地址 提取码:e6p9 mysql数据库基础第一章:(一)数据库基本概念 mysql数据库基础第一章:(二)mysql环境搭建 mys ...