一、局部变量和成员变量

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. acute

    In Euclidean geometry, an angle is the figure formed by two rays, called the sides of the angle, sha ...

  2. 初学js正则表达式之密码强度验证

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 【leetcode】565. Array Nesting

    You are given an integer array nums of length n where nums is a permutation of the numbers in the ra ...

  4. Default Assignment Operator and References

    We have discussed assignment operator overloading for dynamically allocated resources here . This is ...

  5. Spring标签库

    spring提供了两个标签库文件:spring-form.tld(表单标签库,用于输出HTML表单)  spring.tld(基础标签库,用于Spring数据绑定等) 使用步骤: 1,配置表单标签库, ...

  6. Spring Boot下使用拦截器

    Spring Boot对于原来在配置文件配置的内容,现在全部体现在一个类中,该类需要继承自WebMvcConfigurationSupport类,并使用@Configuration进行注解,表示该类为 ...

  7. 【Matlab】快速傅里叶变换/ FFT/ fftshift/ fftshift(fft(fftshift(s)))

    [自我理解] fft:可以指定点数的快速傅里叶变换 fftshift:将零频点移到频谱的中间 用法: Y=fftshift(X) Y=fftshift(X,dim) 描述:fftshift移动零频点到 ...

  8. 【简】题解 AWSL090429 【原子】

    预处理出每个原子最近的不能合并的位置 枚举当前位置和前面断开的位置合并 发现还是不能过 考虑用选段树优化 但是因为每次转移的最优点是在前面可以合并的范围内 dp值加上当前的到该点的最大值 因为每个位置 ...

  9. 带你了解 Angular 与 Angular JS

    Angular 是一个基于 TypeScript 的开源客户端框架,专为构建 Web 应用程序而设计. 另一方面,AngularJS 是 Angular 的第一个版本,用纯 JavaScript 编写 ...

  10. Python用xlrd读取Excel数据到list中再用xlwt把数据写入到新的Excel中

    一.先用xlrd读取Excel数据到list列表中(存入列表中的数据如下图所示) import xlrd as xd #导入需要的包 import xlwt data =xd.open_workboo ...