❤写在前面
❤博客主页:努力的小鳴人
❤系列专栏:JavaSE超详总结
❤欢迎小伙伴们,点赞关注收藏一起学习!
❤如有错误的地方,还请小伙伴们指正!在最近的Java学习中,发现Java好多基础知识忘的忘,模糊的模糊,就打算把 【Java】 全部梳理一遍,陆陆续续的文章会放在这里,欢迎订阅一起学习>>>JavaSE超详总结
系列传送门:
【附章1Java数组中常见算法】图文并茂详解十大排序算法让您回味无穷
【03章Java数组】程序员必看数组详解
【02章Java基本语法】详细讲解让你重新认识Java基本语法和流程流程控制
【01章Java语言概述】Java学了很久了吧,快回来熟悉熟悉吧(详细)
1) 封装 (Encapsulation)
2) 继承 (Inheritance)
3) 多态 (Polymorphism)
类 (Class)和对象 (Object) 是面向对象的核心概念
注:类是对一类事物的描述,是抽象的、概念上的定义
对象是实际存在的该类事物的每个个体
代码如下:
class project{
//属性,或成员变量
String name;
boolean isflag;
//构造器
public project(){
}
public project(String a,boolean is){
name = a;
isflag = is;
}
//方法,或函数
public void run(){
System.out.println("运行工程project")
}
public String fix(){
return "工程名字:" + name + ",isflag :" + isflag;
}
//代码块
{
name = "努力的小鸣人";
time = 13;
isflag = true;
}
//内部类
class car{
String name;
double number;
}
}
注:类 = 抽象概念的人
对象 = 实实在在的某个人
对象名.对象成员
”的方式访问对象成员(包括属性和方法)public class num{
public static void main(String args[]){
//创建对象
Animal ab=new Animal();
ab.legs=4;//访问属性
System.out.println(ab.legs);
ab.eat();//访问方法
ab.run();//访问方法
}
}
堆(Heap),此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配
栈(Stack)是指虚拟机栈,虚拟机栈用于存储局部变量
等。局部变量表存放了编译期可知长度的各种基本数据类型(boolean、byte、char 、 short 、 int 、 float 、 long 、double)、对象引用(reference类型,它不等同于对象本身,是对象在堆内存的首地址),方法执行完,自动释放
方法区(Method Area):用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据
匿名对象:如:new Person().shout()
属性名属于标识符
,符合命名规则和规范即可public class Person{
//声明private变量 age
private int age;
//声明public变量 name
public String name = "努力的小鸣人";
}
成员变量:在方法体外、类体内声明的变量
局部变量:在方法体内部声明的变量
不能独立存在
,所有的方法必须定义在类中//返回两个整数的和
int add(int x,int y){
return x+y;
}
//返回三个整数的和
int add(int x,int y,int z){
return x+y+z;
}
//返回两个小数的和
double add(double x,double y){
return x+y;
}
public static void main(String[] args) {
int x = 5;
System.out.println("修改之前x = " + x);// 5
// **x是实参**
change(x);
System.out.println("修改之后x = " + x);// 5
}
public static void change(int x) {
System.out.println("修改之前x = " + x);
x = 3;
System.out.println("修改之后x = " + x);
}
public static void main(String[] args) {
Person per = new Person();
per.age = 5;
System.out.println("修改之前age = " + per.age);// 5
// x是实参
change(per);
System.out.println("修改之后age = " + per.age);// 3
}
public static void change(Person per) {
System.out.println("修改之前age = " + per.age);
per.age = 3;
System.out.println("修改之后age = " + per.age);
}
封装性是把对象的成员属性和成员方法结合成一个独立的相同单位
,并尽可能隐蔽对象的内部细节方法
:getXxx()和setXxx()实现对该属性的操作,特征
:public class Animal {
private int legs;
// 构造器
public Animal() {
legs = 4;
}
public void setLegs(int i) {
legs = i;
}
public int getLegs() {
return legs;
}
}
构造器重载使得对象的创建更加灵活,方便创建各种不同的对象
代码举例:
public class Person{
public Person(String name, int age, Date d) {
this(name,age);
…
}
public Person(String name, int age) {
…
}
public Person(String name, Date d) {
…
}
public Person(){
…
}
}
注:构造器重载,
参数列表
必须不同
总结:这篇文章初讲Java面向对象编程思想和部分基本知识,比较容易理解,会持续更新哦!
作者算是一名Java初学者,文章如有错误,欢迎评论私信指正,一起学习~~
如果文章对小伙伴们来说有用的话,点赞关注收藏就是我的最大动力!
不积跬步,无以至千里,书接下回,欢迎再见