类和对象
/**
* java 中的类和对象
*
* 一、局部变量的作用域。
*
* 二、面向对象的概述
* 但是在面向对象设计之前,广泛采用的是面向过程,面向过程只是针对于自己来解决问题。
* 面向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也不考虑修改的可能性。
*
* 面向对象,更多的是要进行子模块化的设计,每一个模块都需要单独存在,并且可以被重复利用,
* 所以,面向对象的开发更像是一个具备标准的开发模式。
*
* 可维护性 需求分析
*
* 2. 在面向对象定义之中,也规定了一些基本的特征:
抽象。
* (1)封装:保护内部的操作不被破坏;
* (2)继承:在原本的基础之上继续进行扩充;
* (3)多态:在一个指定的范围之内进行概念的转换。
*
* 3. 面向对象的开发?
* 对于面向对象的开发来讲也分为三个过程:OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)。
*
* 4.类与对象是整个面向对象中最基础的组成单元。
*
* 5.对象是将来用于存储数据(实体类)
*
* 三、类中的函数?
* 无参数无返回值的函数
*
A 函数的定义
【权限修饰符】 void 函数名(){
}
static void hah(){}
四、类
类是对象的模板,对象是类的实例?
类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。
定义一个 people 类
他的属性有 age sex tall weight ...
int age ;
string sex;
double tall;
double weight;
新建一个测试类
JavaTest
创建对象。
people p = new people();
赋值。
p.age = 15;
p.sex = "男";
...
1
*/
public class JavaObject {
public static void main(String[] args) {
int b3=456;
}
/**
* 局部变量 :定义到函数内部的变量 称之为 局部变量
* 局部变量的作用域:局部变量的使用范围
* 从变量定义开始 到所在的结束大括号
* 在同一作用域内 不能重复定义变量
*/
@Test
public void juBu(){
int a = 10;
if (a>5){
int b = 20;
System.out.println("b====="+b);
System.out.println(a);
}
int b2 =30;
System.out.println("b2===="+b2);
}
/**
* 无参数无返回值的函数
* 1.权限修饰符
* 2.返回值类型
* 3.方法名 函数名 小驼峰的命名方式。。
* (): 参数列表
* {}: 函数体
*/
public void haha(){
}
/**
函数的调用?
1. 非静态 对象名.函数名
Test01 test01 = new Test01();
test01.haha();
2.
*/
}
函数
/**
* 一、java中的函数?
*
* 1.【修饰符】 返回值类型 函数名(参数类型 参数名,参数类型 参数名,........) {
* 函数体
* }
*
* 2. 无参数无返回值的函数
* 定义: 【修饰符】 void 函数名() {
* 函数体
* }
*
* 为什么需要函数:函数能实现某些功能
* 函数的调用(非static) : 1 创建对象
* 2 对象名.函数名();
*
*
* 3. 有参数 无返回值的函数
* 定义: 【修饰符】 void 函数名(参数类型 参数名,参数类型 参数名,........){
* 函数体/方法体
* }
参数和返回值 都是 数据传递的一种方式。。。
*
* 二 、java中的重载?
*
* 三、 构造函数?
* 1. 在一个类中 默认会生成一个公共无参数的构造函数(也就是说 你不写 默认会帮你加上)
*
* 2. 我们一旦自己写了构造函数 那么公共无参数的构造函数就不会自动生成了
* 所以 我们一旦添加公共有参数的构造函数 一定要确保无参数构造函数的存在
* (OCJP)
*
*
* */
public class JavaFunction {
public static void main(String[] args) {
/*
函数的参数和返回值的使用 取决于实际需求。
*/
int hah = add(45, 55);
System.out.println(hah);
// Haha() 构造函数。
Haha haha = new Haha();
}
/**
* 构造函数
*/
static class Haha{
public static void main(String[] args) {
int age ;
String name;
}
//自己写了构造函数 那么公共无参数的构造函数就不会自动生成了
public Haha(){
}
// 自己写构造函数的作用(通过构造函数传参)
public Haha(int age,String name){
System.out.println("创建带参的构造函数 , 需要手动添加空的构造函数");
}
}
/**
*1. 无参数无返回值的函数
*/
public void haha(){
System.out.println(66);
}
/**
* 2.有参数 无返回值的函数
*/
static void add(int a, int b){
// 有返回值的方法 return 的内容 要和返回值类型匹配
int result = a+b;
// 以 return 语句执行后的代码不执行)
}
/**
* 3.有返回值没有参数
*/
int jian(){
// 函数体。
return 0;
}
/**
有参数有返回值的方法
*/
double getDifference(int a, int b){
double result = a - b;
return result;
}
/**
* 在同一类中,函数名相同,参数列表(参数的个数,参数的类型,类型的顺序)不同 此时就是函数的重载
*/
int add(int a){
return a;
}
/**
* 重载和 方法的返回值类型没有关系 只和参数列表有关
* 两个 add 返回值类型不同
* 报错 :已经在类中定义了add 方法
*
*
* @return
*/
int add(){
return 0;
}
/**
* 假设 编译不报错 请问,你在主函数中调用 add 方法
* 问题来了 你调用的是 int ,还是 void?
* 所以 Java中 不能根据返回值类型进行重载。
*/
void add(){
}
}