java中的面向对象基础

1、对象

#一切客观存在的事物都是对象,万物皆对象。

#任何对象,一定具有自己的特征和行为。

2、类

(1)类的定义

(2)对象的创建

(3) 类与对象的关系

类:定义了对象应具有的特征和行为,类是对象的模板。
对象:拥有多个特征和行为的实体,对象是类的实例。

代码示例:

public class TestOOP {public static void main(String[] args) {// 1. 创建Dog类型的对象,并保存在dog变量当中Dog dog = new Dog();// 2.访问属性:为各个属性赋值dog.breed = "萨摩";dog.age = 3;dog.sex = "公";dog.furColor = "白色";// 3.访问属性:从各个属性中取值System.out.println(dog.breed + " " + dog.age + " " + dog.sex + " " + dog.furColor);// 4.调用对象的方法dog.eat();dog.sleep();}
}class Dog {// 在现实中的一组相同或类似的对象中,提取共性的特征和行为,保存在程序中的模板里(类)// 属性-实例变量String breed; // 品种int age; // 年龄String sex; // 性别String furColor;// 毛色// 方法-实例方法eat()public void eat() {System.out.println("爱蹦...");}// 方法-实例方法sleep()public void sleep() {System.out.println("爱跳...");}}

3、构造方法

构造方法:是类中的特殊方法,主要用于创建对象。

特点:

  • 名称与类名完全相同。
  • 没有返回值类型。
  • 创建对象时,触发构造方法的调用,不可通过句点手动调用。

构造方法又分为无参构造方法和有参构造方法:

无参构造方法:
默认存在,但是一旦添加了有参构造方法,便会覆盖无参构造方法,需要使用的时候,必须手动添加
格式:访问修饰符 类名(){ }

有参构造方法:
需要手动添加,可以存在1个或者多个参数的有参构造方法
格式:访问修饰符 类名(参数类型1 参数名1,参数类型2 参数名2,…){ }

在得知对象中的属性,直接通过有参构造方法创建对象,会比无参构造方法方便
有参构造方法 = 无参构造方法 + 一个或者多个set( )

无参构造方法:

public class Demo01 {String name;int age;String sex;//无参构造方法创不创建都没关系,因为它是默认存在的public Demo01(){}public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}public void setSex(String sex) {this.sex = sex;}}
public class Demo02 {public static void main(String[] args) {//创建对象的时候单独赋值Demo01 demo01 = new Demo01();demo01.setName("小明");demo01.setAge(18);demo01.setSex("男");}
}

有参构造方法:

public class Demo01 {String name;int age;String sex;//创建了有参构造方法就不用写setName、setAge、setSex这3个方法了public Demo01(String name, int age, String sex) {this.name = name;this.age = age;this.sex = sex;}}
public class Demo02 {public static void main(String[] args) {//创建对象的时候直接赋值Demo01 demo01 = new Demo01("小明",18,"男");}
}

4、this关键字:指向当前类的类对象

this关键字的两种用法:

(1)第一种用法:调用实例属性、实例方法。如:this.name、this.sayHi()。

public class Demo {public static void main(String[] args) {Student stu = new Student();stu.sayHi();}
}
class Student{String name = "小明";public void sayHi() {//当实例变量和局部变量重名时,优先访问局部变量;//此时,如需访问实例变量,需要增加this.前缀;//不存在重名时,则可省略this。String name = "小陈";System.out.println(name);System.out.println(this.name);}
}
//运行结果:
//  小陈
//  小明

(2)第二种用法:调用本类中的其他构造方法。如:this()、this(实参)。

class Student{String name;int age;String sex;public Student(String name,int age) {this.name = name;this.age = age;}public Student(String name,int age,String sex) {//在构造方法中,调用本类的其他构造方法,即可复用构造方法中的逻辑代码;//三参构造将接收到的实参直接传递给三参构造进行属性赋值。this(name,age);this.sex = sex;}
}
  • this():调用无参构造
  • this(实参):调用有参构造
  • 注:必须在构造方法的首行

java中的面向对象基础相关推荐

  1. 第90节:Java中的Linux基础

    第90节:Java中的Linux基础 linux是装载虚拟机上面的: JDK依赖包: yum install glibc.i686MYSQL依赖包: yum -y install libaio.so. ...

  2. java饲养员喂动物_做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处...

    做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处 interface Animal{ //动物的接口    public void eat(Food food); // ...

  3. 第87节:Java中的Bootstrap基础与SQL入门

    第87节:Java中的Bootstrap基础与SQL入门 前言复习 什么是JQ? : write less do more 写更少的代码,做更多的事 找出所有兄弟: $("div" ...

  4. 并发王者课-铂金1:探本溯源-为何说Lock接口是Java中锁的基础

    欢迎来到<并发王者课>,本文是该系列文章中的第14篇. 在黄金系列中,我们介绍了并发中一些问题,比如死锁.活锁.线程饥饿等问题.在并发编程中,这些问题无疑都是需要解决的.所以,在铂金系列文 ...

  5. 铂金1:探本溯源-为何说Lock接口是Java中锁的基础

    欢迎来到<并发王者课>,本文是该系列文章中的第14篇. 在黄金系列中,我们介绍了并发中一些问题,比如死锁.活锁.线程饥饿等问题.在并发编程中,这些问题无疑都是需要解决的.所以,在铂金系列文 ...

  6. 17、Java中的面向对象的编程思想

    Java中的面向对象的编程思想 作者:韩茹 公司:程序咖(北京)科技有限公司 程序咖:IT职业技能评测平台 网址:https://www.chengxuka.com 任务 1. 面向对象 2. 面向过 ...

  7. Java中的线程基础知识

    Java中的线程基础知识 1.线程概念 线程是程序运行的基本执行单元.当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个 ...

  8. 简单理解Java中的面向对象

    java基础之面向对象 面向对象是什么 打个比方,你找对象的时候,是不是应该找人类?更具体点,你是在找茫茫人海中的一个个体,每个人都是不同的.在Java中,同一个类也是有不同的对象的,但都有相同的.基 ...

  9. 7、java中的面向对象思想和体现

    java是一种面向对象的程序设计语言,在程序中使用对象来描述具体的事物,当多个事物具有共同的特点时,可以将事物的共同特点进行抽象,然后封装成一个包含事物共同特点的集合,在java中叫做封装成一个类,可 ...

最新文章

  1. qt 删除文件夹_Qt 贪吃蛇制作(含源码)
  2. 【solr基础教程之一】Solr相关知识点串讲
  3. 如何需求分析和编写测试用例
  4. Ubuntu 16.04 软件安装
  5. struts2+hibernate3.3+spring3.0 实现零配置
  6. 应急响应系统日志及日志分析四
  7. DatePicker 设置最小日期是当前时间报错:java.lang.IllegalArgumentException: fromDate:xxx does not preced toDate: xx
  8. html代码清明节,清明节网上祭祀网站登陆地址:http://www.tsingming.com/index.html
  9. GPIB编程控件指令
  10. Unity中的UI相关组件
  11. 备份Ubuntu12.04 并制作成iso安装文件
  12. 不懂年轻人,还怎么带团队
  13. 黑马《linux基础编程》学习笔记(从16到20)
  14. Oracle 服务器连不上解决方式(远程telnet 1521端口失败)
  15. 中建五局电子合同:打通全业务数字化链路
  16. 计算机桌面图标的排列,win7电脑桌面图标排列方式如何设置,电脑桌面图标排列方式设置方法...
  17. position:fixed 固定定位
  18. 别再胡乱写简历了,一份适合普通大众的简历模版,送给大家
  19. Windows环境下使用Python设计应用软件——【1】pyqt设计界面
  20. python基础命令

热门文章

  1. linux 电源管理驱动编写
  2. 如何判断一个数是不是素数?
  3. 2021年T电梯修理免费试题及T电梯修理作业模拟考试
  4. 移动端的视频窗口自适应宽屏竖屏
  5. Linux大杂烩(扩展)
  6. python socket的部分学习(ASDL)
  7. 投资:SEC Form总结
  8. 采购申请审批策略增强
  9. 关于获取计算机唯一ID问题
  10. (计算机组成原理)控制器的功能和工作原理