一、局部变量和成员变量

package class4.oop1;

/**
* @Auther: Yu Panpan
* @Date: 2021/12/10 - 12 - 10 - 14:47
* @Description: class4.oop1
* @version: 1.0
*/ /**
* 变量:
* 局部变量:
* 定义:在方法内定义的变量称为局部变量
* 作用域:从变量定义开始到方法结束
* 注意:
* 1、局部变量只能在当前方法中使用,其他地方都不能使用
* 2、局部变量如果没有使用,只是定义的话,不会报错,但是如果有引用那么必须先进行初始化才能使用
* 3、局部变量没有默认值,所以在使用之前必须先进行初始化
*
* 成员变量:(全局变量)
* 定义:在方法之外,类内定义的变量称为成员变量
* 作用域:整个类体都可以访问
* 注意:
* 1、成员变量有默认值,系统会根据变量的数据类型默认的给默认值
* int-->0 boolean-->false String-->null
*
*/
public class VarDemo { //属性(成员变量)
int age = 10;
// String name; //定义方法
public void show(){
//局部变量
String name = "小鑫鑫";
System.out.println(name);
int a;
// System.out.println(a); 错误
System.out.println(age);
} public void test(){
System.out.println(age);
age = 20;
System.out.println(age);
//局部变量
int age = 30;
System.out.println(age);
} public static void main(String[] args) {
//创建对象
VarDemo vd = new VarDemo();
// vd.show();
// System.out.println(name); 错误
System.out.println(vd.age);
vd.test();
System.out.println(vd.age);
// System.out.println(vd.name);
} }

二、构造方法

package class4.oop1;

/**
* @Auther: Yu Panpan
* @Date: 2021/12/10 - 12 - 10 - 15:55
* @Description: class4.oop1
* @version: 1.0
*/ /**
* 构造方法:
* 在创建对象的时候默认会调用构造方法,在堆中进行存储,主要目的是为了对成员变量进行初始化操作
* 语法:
* 修饰符:4个,后面再讲(public、protected、[default]、private)
* 返回值:构造方法没有返回值
* 方法名:构造方法的名称必须和类名保持一致
* 参数列表:和普通方法一样
* 方法体:主要是为成员变量进行初始化操作
* 注意:
* 1、当程序中没有显示的声明一个构造方法的时候,系统会给你一个默认的不带任何参数的空构造方法来供你创建对象使用
* 2、当你在程序中显示的声明了一个非空的构造方法,那么java编译器就不会再给你那个空参的构造方法了,
* 但是这时候你又想用空参的构造方法,那么只有再定义一个构造方法了
* 3、一个类中可以有多个构造方法
*
* 重载(overload):在一个类中可以有多个同名的方法,但是要求方法的参数列表不同
* 三方面的不同:
* 1、参数个数不同
* 2、参数类型不同
* 3、参数顺序不同
*
* 注意:
* 一般都需要使用构造方法的重载,因为成员变量可能会有很多个,但是我们只需要对部分成员变量进行初始化操作
*/
public class Teacher { //属性(成员变量,全局变量)
String name;
int age; public Teacher(){
System.out.println("空构造方法被执行了... ...");
} //定义一个构造方法
public Teacher(String tname,int tage){
System.out.println("Teacher(String name,int age)被执行了... ...");
name = tname;
age = tage;
} public Teacher(int tage,String tname){ } public Teacher(int tage){ } public void test(String name,int age){ } public void test(int age,String name){ } public static void main(String[] args) {
//创建对象
Teacher teacher1 = new Teacher();
teacher1.name = "小鑫鑫";
teacher1.age = 18;
System.out.println(teacher1.name);
System.out.println(teacher1.age);
Teacher teacher2 = new Teacher("张飞",20);
System.out.println(teacher2.name);
System.out.println(teacher2.age);
}
}

三、练习题

package class4.oop1;

/**
* @Auther: Yu Panpan
* @Date: 2021/12/10 - 12 - 10 - 16:51
* @Description: class4.oop1
* @version: 1.0
*/
public class Point { //属性
int x;
int y; public Point(){ } //定义构造方法
public Point(int xx,int yy){
x = xx;
y = yy;
} //定义个显示点坐标的方法
public void show(){
System.out.println("(" + x + "," + y + ")");
} //定义提供两个坐标的方法
public void set(int xx,int yy){
x = xx;
y = yy;
} //定义计算一个点到另外一个点的距离的方法
public double calcInstance(Point p){
return Math.sqrt((p.x-x)*(p.x-x) + (p.y-y)*(p.y-y));
} //交换两个点坐标的值
public void changePoint(Point p){
//交换x
int temp1 = p.x;
p.x = x;
x = temp1;
//交换y
int temp2 = p.y;
p.y = y;
y = temp2;
} public static void main(String[] args) {
// Point p1 = new Point(3,5);
// p1.show();
Point p1 = new Point();
p1.set(3,5);
Point p2 = new Point();
p2.set(6,9);
p1.show();
p2.show();
double result = p1.calcInstance(p2);
System.out.println(result);
System.out.println("两个点坐标交换之后的坐标值----------");
p1.changePoint(p2);
p1.show();
p2.show();
}
}

教学日志:javaSE-面向对象2的更多相关文章

  1. JavaSE——面向对象与面向过程、类与对象、(属性、方法、构造器)等

    一:面向对象与面向过程 二者都是一种思想,面向对象是相对于面向过程而言的. 面向过程: 1.面向过程思想强调的是过程(动作). 2.在面向过程的开发中,其实就是面向着具体的每一个步骤和过程,把每一个步 ...

  2. JavaSE| 面向对象的三大特征

    1.面向对象的基本特征之一:封装Encapsulation 目的:隐藏实现细节,让使用者方便,让代码更安全 将对象的属性和行为封装起来,其载体就是类.类通常对客户隐藏其实现细节,这就是封装的思想. 封 ...

  3. JavaSE| 面向对象-类的五大成员

    面向对象 面向对象只是其中一种编程思想,还有很多其他的编程思想:面向过程.面向切面.面向服务编程... 面向过程的思维方式:注重步骤.过程,面向过程强调的是功能行为: 面向对象的思维方式:关注的是“对 ...

  4. javaSE面向对象编程

    面向对象编程 构造器 构造器就是和类名相同但无返回类型的方法. public class Person { //一个类即使什么都不写,它也会存在一个方法 //显示的定义构造器 String name; ...

  5. [javaSE] 面向对象(Object类toString)

    每一个对象,都有一个在内存中的地址哈希值,这个哈希值是十六进制的 调用Object对象的hashCode()方法,返回这个对象的哈希值 调用Integer.toHexString()方法,转换十六进制 ...

  6. JavaSE入门学习23:Java面向对象之构造方法

    学了JavaSE面向对象这一部分,也该对构造方法做一个总结了. 一构造方法 在多数情况下,初始化一个对象的终于步骤是去调用这个对象的构造方法. 构造方法负责对象的初始化工作,为 实例变量赋予合适的初始 ...

  7. JavaSE 基础习题整理 - 面向对象篇

    大家好,今天空闲时间整理了一份JavaSE面向对象的常用习题,喜欢的朋友可以关注我.习题来自互联网,不喜勿喷 1.定义长方形类,含: 属性:宽.高(整型): 方法:求周长.面积: 构造方法3个:(1) ...

  8. javase基础复习攻略《三》

    编程语言的发展: 机器语言——直接由计算机的指令组成,指令.地址.数据都是以"0"和"1"的符号串组成,可以被计算机直接执行. 汇编语言——用容易理解和记忆的符 ...

  9. Java入门姿势【面向对象3】构造方法及其重载_方法的调用

    上次我为大家写出啦"定义类与创建对象_了解局部变量",上篇文章代码可能较多,如没有了解透彻的话请打开下方文章在进行观看一下哦!! [Java入门姿势[面向对象2]定义类与创建对象_ ...

  10. java应届生面试考点收集

    回 到 顶 部 这些知识点来自于之前去百度实习.阿里.蘑菇街校园招聘的电话面试 未完待续 JavaSE 面向对象 封装.继承.多态(包括重载.重写) 常见区别 String.StringBuffer. ...

随机推荐

  1. accomplish, accord

    accomplish =achieve; accomplishment=achievement. accomplished: well educated/trained, skilled. skill ...

  2. 纯CSS圆环与圆

    1. 两个标签的嵌套: <div class="element1"> <div class="child1"></div> ...

  3. android studio 生成aar和引用aar

    以android studio 2.0正式版为例 1.aar包是Android studio下打包android工程中src.res.lib后生成的aar文件,aar包导入其他android stud ...

  4. Dubbo声明式缓存

    为了进一步提高消费者对用户的响应速度,减轻提供者的压力,Dubbo提供了基于结果的声明式缓存.该缓存是基于消费者端的,所以使用很简单,只需修改消费者配置文件,与提供者无关 一.创建消费者07-cons ...

  5. java实现文件压缩

    java实现文件压缩:主要是流与流之间的传递 代码如下: package com.cst.klocwork.service.zip; import java.io.File; import java. ...

  6. 使用 IntelliJ IDEA 远程调试 Tomcat

    一.本地 Remote Server 配置 添加一个Remote Server 如下图所示 1. 复制JVM配置参数,第二步有用 2. 填入远程tomcat主机的IP地址和想开启的调试端口(自定义) ...

  7. Docker从入门到精通(一)——初识

    1.Docker 是什么? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容 ...

  8. 🏆【Alibaba中间件技术系列】「RocketMQ技术专题」Broker配置介绍及发送流程、异常(XX Busy)问题分析

    参考资料 Rocketmq官网:http://rocketmq.apache.org/ Rocketmq的其它项目:https://github.com/apache/rocketmq-externa ...

  9. Springboot整合MongoDB(Eclipse版本)

    IDEA版本其实也差不多的,大同小异 简单Demo地址: https://blog.csdn.net/shirukai/article/details/82152243 Springboot项目整合M ...

  10. 如何为Dash/Zeal生成c++ 文档: 以abseil文档为例

    目录 1. 软件安装 2 Sample源文件下载: 3. 生成步骤 3.1 使用doxygen生成html文件 3.2 使用docsetutil 生成 dash/Zeal 格式 1. 软件安装: 1. ...